diff --git a/docs/en/index.html b/docs/en/index.html index dffe8365..13128b00 100644 --- a/docs/en/index.html +++ b/docs/en/index.html @@ -1389,7 +1389,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Topics","level":"1.2","depth":1,"ref":"","articles":[{"title":"Routes","level":"1.2.1","depth":2,"path":"topics/routes.md","ref":"topics/routes.md","articles":[]},{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},{"title":"Metrics","level":"1.2.5","depth":2,"path":"topics/metrics.md","ref":"topics/metrics.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"README.md","mtime":"2018-09-09T05:00:42.712Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":".","book":{"language":"en"}}); + gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Topics","level":"1.2","depth":1,"ref":"","articles":[{"title":"Routes","level":"1.2.1","depth":2,"path":"topics/routes.md","ref":"topics/routes.md","articles":[]},{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},{"title":"Metrics","level":"1.2.5","depth":2,"path":"topics/metrics.md","ref":"topics/metrics.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"README.md","mtime":"2019-08-06T09:48:58.222Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":".","book":{"language":"en"}}); }); diff --git a/docs/en/search_index.json b/docs/en/search_index.json index e1d44446..66f1a155 100644 --- a/docs/en/search_index.json +++ b/docs/en/search_index.json @@ -1 +1 @@ -{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["!=","\"\"","\"${customer}","\"/\",","\"/api/v1\",","\"/api/v1/some\".","\"/child\",","\"/echo\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"alice\",","\"apach","\"application/x","\"content","\"context\"","\"correspond","\"echo","\"error","\"first","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"messag","\"message\":","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"openapi","\"pluginname\"","\"result","\"second","\"thi","\"v1.0.0\",","\"valid","#","$","${customer})","${name}","%s:%d\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'{\"name\":","(","(*spec.swagger,","(and","(apachebench)","(bool,","(e.g.","(i","(string,",")","*/*","*api.message)","*body)","*nirvana.config)","*plugininstaller)","+nirvana:openapi=tru",".","...","./examples/get","/","//","/debug/pprof","/echo","/echo,","/echo[?msg=]","/go/package/to/your/generated/funct","/go/package/to/your/typ","/metric","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","0","0202","1","10","10,","100)","1000","1000,","101","11","11:18:50.235+08","126","16:34:38.663+08","1:","2.0","2.0\",","200","201","202","204","260","28","2:","2>&1","3","41","500","500,","50554","507","55","73","8080","90","90m.","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.result{","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[text/plain]","\\","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`default`","`json:\"message\"","`json:\"name\"","`name`","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source`","`source`.","ab","abov","above.","above:","accept","accept:","access","actual","ad","add","advanc","aforement","aim","allow","alway","anoth","api","api\",","api.getopenapidefinitions,","appear","application.","application/json\"","arg","around","array","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","avoid","back","basic","basics.","before.","behavior","behavior,","behavior.","below","best","between","bit","block","bodi","body,","body.","body.nam","body.name)","bool):","bool,","box","broken","build","builder","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","built","busniess","by:","c.set(externalconfigname,","caicloud.","call","capabl","care","careful,","case","case,","categori","certain","cfg","cfg)`","chang","charact","characters,","characters.","check","checkout","child","children","children:","children;","cli","client","client,","client.","cmd","code","code()","code,","code.","collect","combin","combination.","come","comma","command,","common","complex","complic","concept","config","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.port())","configa","configa(fielda","configb","configb()","configur","configuration,","configuration:","configure(","configurers:","conflict","consist","const","consum","consume.","consumes.","consumes:","contact:","contain","content","contention(en","contenttyp","context","context,","context.context","context.context,","contribut","contriv","conveni","convention,","convert","convertor,","core","core,","correspond","counter","cpu","creat","create:","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","d","data","data\"","data.","decid","declar","default","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor.","definition.descriptor{","definition.error,","definition.get,","definition.middlewar","definition.paramet","definition.produc","definition.query,","definition:","definitions,","definitions.","definitions:","delet","depend","deriv","describ","descript","description:","descriptor","descriptor'","descriptor,","descriptor.","descriptor:","descriptors.","design","destin","destination:","detail","details,","develop","developmenet","diagnos","differ","direct","directli","disabl","disable()","disabled.","discouraged.","distribut","doc","doc.","doc.go","docs,","docs.","doctoc","document","documentation.","don't","done","done,","draft","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","empti","enabl","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","err","error","error)","error,","error.","error:field","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","etc","etc.","etc;","even","ex.","exact","exampl","example,","example:","execut","expired.","expos","extens","extern","externalconfignam","factori","factory.","facts:","fail","false.","fast","fatal","featur","few","field","fielda.","fieldb.","fields.","fieldtype)","file","file.","filter","final","finally,","find","first","first.","float*,","float64((time.since(starttime))","flow","follow","form","format","format.","format:","formatt","found\")","found\",","framework","framework:","from.","full","func","func(c","func(ctx","function","function.","function:","functions.","funtion","future.","gen","gener","generation,","get","get/list","get/sav","getdefinitions:","gethttpclient(req),","getopenapidefinit","getopenapidefinitions.","getopenapideinit","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","glance,","global","glog.","go","goal","golang","grep","guid","h","handl","handler","handler.","header","header.","headers:","help","helper","here","high","histogram","hold","hood,","http","http://host:port/metrics.","http://localhost:8080/echo","http://localhost:8080/metr","httpctx","httpctx.request()","httpctx.responsewriter()","https://editor.swagger.io/,","i)","i.e.","id","idea","ident","ignored.","impact","implement","implementation,","implemented:","import","improv","includ","include:","incom","increas","index","indic","individu","info","info:","infof","infoln","infoprops:","inform","inherit","init()","inject","input","input(","input,","input.","insid","instal","install(build","install/initi","instanc","instead,","instrument","instrumentation.","int","int)","int*,","int,","int.","integr","intercept","interfac","interface,","interface:","interface{}","intern","introduc","introduct","ip","ip.","is,","it!","it'","it.","it:","json","json.newencoder(os.stdout)","keep","key","key,","key:","kickoff","knob","know","language:","larger","last","latenc","latencies.","layout","length","let'","level","level,","librari","license,","license:","list","listen","load;","log","log.fatal(err)","log.infof(\"listen","log.v(4).info","logger","logic","longer","look","lot","main","main()","make","management,","mani","map[string]str","match","mean","mechan","mention","messag","message()","message,","message.","meta","method","method,","method.","method:","methods,","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","microsecond","middlewaar","middlewar","middlewares.","middlewares:","millisecond","mime","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","modifi","moditi","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","multipl","myself\"}'","n","name","name!\")","name\"),","name()","name,","name.","name:","names.","namespac","namespace.","namespace:","natur","necessary,","need","need.","net/http/pprof.","new","newlin","newmetricsmiddleware(namespac","next","next.continue(ctx)","nil","nil)","nil,","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana:","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","non","note","notice:","now","number","obey","object","occurs,","on","onc","one,","open","openapi","openapi\",","openapi()","openapi,","openapi.","oper","operator'","operator,","operator.","operator;","operators.","operators/valid","operators:","option","optional.","order.","others).","out","output","overrid","p","p90","packag","package,","package.","package:","page.","panic(err)","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parameters,","parameters.","parameters:","parent","parent'","pars","part","partial","pass","patch","path","path(path","path).observe(elapsed)","path,","path.","path:","paths:","performant,","place","playground/validator.v9","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","point","popular?","port","port.","post","pprof","pprof,","pre","prefab","prefix","prefix,","prevent","previou","produc","produce.","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","prometheu","propos","provid","put","queri","quick","quit","random","readable.","ready,","receiv","refer","reflect","regist","relationship","repli","req","req.header.get(\"cont","req.url.path","request","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests:","requir","resourc","resource,","resource.","resp","respons","response.","result","result\",","result.","results,","results.","results:","retrun","return","rewrit","router.","run","run:","same","satisfi","scope","second","see","seen","send","sens","sent.","separ","serv","server","server\",","server,","server.","servic","service!","service.builder,","service.httpcontextfrom(ctx)","service;","services.","set","settings:","sever","severity.","show","shown","signatur","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","sleep","smoothli","snippet","somedefinitions,","somemiddlewar","somemiddlewares,","something.","sourc","source,name[,default=value]","source.","source:","spam","spec.","spec.infoprops{","specif","specifi","specification:","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starts.","starttim","static","statu","step","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","string","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","strongli","struct","struct\",","struct,","struct.","struct:","structur","struct{}","stuff","sub","success","success\",","such","summari","support","support,","support.","sure","swagger","swagger,","swagger.json","symbol","tabl","table:","tag","tags.","take","target","tbd","teach","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","then,","therefore,","though","three","time","time.millisecond)","time.now()","times,","tire","title:","to:","total.","trace","tracing,","translat","tri","two","type","type\"),","type.","type:","types:","u","uint*,","under","understand","unimport","uninstal","uninstall(build","uniqu","unlik","updat","upgrad","url","url:","urlencoded\"","us","usability.","usag","usage.","use:","used.","user","user,","usual","usually,","valid","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation,","validation.","validation:","validator'","validator.","validator.int,","validator.newcustom(","validator.str","valu","value.","values.","var","var,","velocity.","verb","verb,","verbos","veri","verifi","version","version:","via","via:","view","want","warn","we'll","we'v","wealth","well","whole","within","won't","works!","works:","write","written","www","x","yaml","you'll","you'v","{","{...)","{...}","|","}","})","},"],"guides/project.html":["\"\"","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/someapi\"","#","$","$gopath/bin","$gopath/src/","$gopath/src/myproject","$path",".","./bin/myproject","./build/myproject/dockerfil","./myproject","/apis/v1","8080:8080","8080。","=","api","api.go","api。api","bin","build","cd","cmd","contacts:","contain","convert","curl","debian:jessi","definit","dep","description:","descriptor","descriptors.go","dockefile),还有一个","docker","dockerfil","email:","ensur","filter","filters.go","first","framework","github.com/caicloud/nirvana/cmd/nirvana","github.com/golang/dep/cmd/dep","go","golang/dep","golang:latest","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","hosts:","http","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages:","init","ip","localhost:8080","logo","main.go","maintain","make","makefil","makefile,只需要使用简单的","messag","message.go","middlewar","middlewares.go","modifi","modifiers.go","myproject","myproject:v0.1.0","name:","nirvana","nirvana.yaml","nobodi","nobody@nobody.io","p","pkg","prefix:","prefix,那么","project","project:","readme.md","regexp","regexp:","replac","replacement:","request","rules:","run","schemes:","server","u","us","v","v1","vendor","version","version.go","versions:","│","└──","├──","。","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","中也提供了直接打包成镜像的命令:","中间件","中):","为被替换为","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","会生成一个完整的","修改器","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","启动时会打印出","命令启动容器,然后进行访问:","命令就可以完成编译工作:","和","在","在服务启动之后,可以通过浏览器或者命令行访问","在需要发布的时候,通常需要打包成镜像的形式,在","在项目的","如果设置了","字段无效","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","定义","定义相关的代码都在这个目录中","定义,可以修改或删除","对应","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就能够看到","或域名,可以有多个","所有与","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","描述符","文档生成和客户端生成会依赖这个配置文件进行","服务使用的协议,只能填写","正则表达式,用于匹配路径","此时在","每个","比如设置","然后就可以直接使用命令创建项目(请确保","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","用于文档和客户端生成","的","的命令行和其他依赖工具:","的运行,只用于描述项目的信息以及区分不同版本的","的返回结果。","的需要的包定义文件","目录中就能看到编译后的二进制文件,直接运行:","直接编译运行","编译并打包成","编译运行","范例,因此可以直接运行查看效果。","访问","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径替换,因此需要正确设置版本规则。","过滤器","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","那么","配置文件,用于描述项目的基本信息和结构。","镜像","项目","项目。项目结构如下:","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置"],"guides/api.html":["\"/messages\",","\"/messages/{message}\",","\"count\",","\"exampl","\"get","\"list","\"messag","\"number","\"queri","\"thi","&message{","(*message,","([]message,","...","//","/apis/v1/resourc","/apis/v1/resources/{resource}","0;","10,","200","201","202","204",":=","=","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.parameter{","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`source:\"header,cont","`source:\"query,start,default=100\"`","anotherautostruct","api","api。","api,用于获取一条消息:","application/x","array\",","asynccr","asyncdelet","asyncpatch","asyncupd","auto","bodi","body,但是","content","content\",","content\"}","content:","contenttyp","context.context,","count","count)","creat","data","db","def.dataerrorresults(\"a","def.definition{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.query,","default:","default={value}","definit","definitions:","delet","describ","description:","descriptor","descriptor。","destin","entry.","error","error)","exampl","example\",","example\",\"content\":\"exampl","file","form","func","function:","getmessag","getmessage(ctx","get。","get,两者没有区别。","golang","header","http","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","id","id\"),","id\",","id,","id.","id/nam","id:","init","init()","int","int)","json","key","list","listmessag","listmessages(ctx","make([]message,","map[string]string,会写入","messag","message\"),","message\",","message.getmessage,","message.listmessages,","messages\"),","messages\",","messages.","meta","method","method:","multipart/form","name:","nil","nirvana","number","parameters:","patch","path","path:","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","post","prefab","put","queri","register([]def.descriptor{{","request","respons","rest","results:","return","server","sourc","source:","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","specifi","start","string","struct","summari","summary:","tag","titl","title:","type","type\"`","updat","url","urlencod","var","www","{","{\"id\":100,\"title\":\"thi","}","},","}...)","与业务函数的参数名称无关。","业务函数","业务函数返回结果如何放到请求的响应中。","中定义的动作以及对应的","中携带","中,我们建议所有的","中,所有的","之后,编译运行。然后访问","从","从请求的那一部分取得数据,然后传递给业务函数。","但是为了使","修改一个资源的部分内容","内部,比如一个","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","列表的","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","删除一个资源","参数值来源于","参数值来源于当前","参数名称,作为","参数描述","参数来源","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","名称","名称为","和","因为只获取一条消息,此处为","在","在一个","在使用","如果有多个","如果需要给字段设置默认值,则需要使用","定义。","定义了","定义了一个返回","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义,再对应业务函数:","定义:","对于","对于没有","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","成功状态码","或","所有的","接下来我们给项目增加一个","描述","数组包含了这个路径下的所有定义。","方法","方法。","方法。比如某个","方法包。","方法就应该是","方法都是语义层面的,为的是提高","无","是一个短语,用于描述这个","是从","是返回一个资源列表的,那么","更新一个资源(幂等)","有","根据上面的","根据资源唯一","概念","添加","用于描述一个业务函数的参数的来源和默认值。","的","的字段。","的字段。忽略所有没有","的形式。","的版本号。下表中展示了","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的结构体类型,会递归遍历以寻找带有","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型的","类型):","结构体,可以组合成一个:","给项目添加一个","而不是","范例如下:","获取一条消息的","获取资源","获取资源列表","详细描述这个","请求中使用的都是","路径","返回值可以是任意结构,自动转换并写入到","返回值目标","返回的是资源数组,所以使用","这个","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个返回值类型必须是","这是一个工具方法,用于快速生成一个参数结构。","这里添加的业务函数都是以","进行描述的。首先看一个","都是通过","都遵守","里取值。","里获取的。","链接","错误类型,必须是","风格,并且在","默认值"],"guides/doc.html":["$","/home/go/src/myproject","0702","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","8080","api","api.go:179","api.go:87","api.go:95","browser","default","directori","doc","http","http://127.0.0.1:8081","info","ip","listen","nirvana","open","packag","pkg/api","pleas","project","root","serv","serve=\":8081\"","specified,","view","|","会读取","公开给用户使用。于是我们需要给","即可查看文档。","和端口。","在完成了","并使用","提供了一个命令用于从项目中生成文档:","文档","文档截图如下:","服务用于访问这个文档。打开浏览器,访问","生成","的开发工作后,我们需要将","的用户提供一个文档,方便用户阅读。nirvana","端口提供服务。为了防止端口冲突,可以使用","设置监听的","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","这就表示文档生成成功,并且提供了一个","默认情况下,nirvana"],"guides/client.html":["!=","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"context\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","\"myproject/client/v1\"","$","&client{","&client{client},","&client{}","(","(*client,","(c","(interface,","(messag","(message1",")","*client","*client)","*message,","*rest.client","*rest.config)","*v1.client","./client","./client.go","./v1/client.go","./v1/types.go","//","/home/go/src/myproject","0702","10)","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","200,",":=","=","[]message,","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","api","c","c,","c.rest.request(\"get\",","c.v1","c.v1,","cli","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","clients.","contain","content","context.context,","count","count).","creat","data(&messages).","data(message1).","default","describ","directori","do(ctx)","entry.","err","error","error)","func","gener","getmessag","getmessage(ctx","golang","host:","id","id.","import","info","int","int)","interfac","io.read","io.readclos","listmessag","listmessages(ctx","log.fatal(err)","log.info(msgs)","main()","messag","message).","message1","messages.","msgs,","mustnewcli","mustnewclient(cfg","myproject/cli","new","new(message)","newclient","newclient(cfg","newclient(cfg)","nil","nil,","nirvana","nirvana.yaml","occurs.","output","packag","panic","panic(err)","path(\"message\",","pkg/api","project","query(\"count\",","rest","rest.newclient(cfg)","return","root","scheme:","specified,","string","struct","titl","type","types.go","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","var","version","{","|","}","})","└──","├──","中定义。api","使用客户端","依赖的结构体都会被提取出来并生成到","函数即可:","和","多客户端整合。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","指定其他输出目录(目前仅支持生成","支持良好,因此在","文件中,方便客户端使用。","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","生成代码","生成代码:","生成代码:","生成客户端","生成的客户端代码如下:","生成的客户端是版本化的,版本在","的参数和返回值中,尽量避免使用其他接口。","目前客户端生成对接口的支持还不完善,仅仅对","目录下生成","该命令默认会在","调用,可以生成客户端以供使用:","输出日志如下(项目路径和日志时间会有所不同):","限制"],"concepts/cp.html":["!=","&&","//","204",":=","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","application/json","application/octet","application/x","application/xml","conet","consum","consume(r","consumers:","consumer:","content","contenttyp","contenttype()","data","err","error","file","form","github.com/caicloud/nirvana/servic","handl","http","interfac","interface{})","io.read","io.reader,","io.writer,","json.marsh","json.unmarsh","log.fatal(err)","marshal","mime","multipart/form","newsimpleserializer(contenttype)","nil","nirvana","object","object.","pars","produc","produce(w","producers,并且他们的行为和","producers:","producer。","producer:","r","reader","return","serial","servic","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","specif","stream","string","text/plain","type","type.","unmarsh","urlencod","v","v.","w.","write","writer.","www","xml.marshal","xml.unmarsh","{","}","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","与","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","于","则负责将业务函数的返回结果写入到响应体中。","包提供了相应的工具用于注册用户自己的","包路径:","去读取数据并进行类型转换。","只能生成","可能不能满足实际使用需求。因此","和","在","在业务的实际场景中,默认提供的","在接收到","在需要生成","如果接收类型是","如果类型符合","实现了这个接口后,通过","将数据写入到响应。","将类型转换为字节数据写入到响应体中。","并成为","快速生成","或","接口。其中","接口或者是","描述","提供了","注册","添加","用于将请求体中的数据转换为业务函数需要的类型,而","的","的工具","的注册方法即可注册","空的","类型","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","自动处理数据转换,nirvana","说明了请求和响应中的数据类型。为了根据","请求中,content","进行解析。","通常对应于","通常情况下,我们需要快速添加一些","需要实现接口:","默认提供的"],"concepts/operator.html":["!=","\"converter\"}","\"count\",","\"list","\"number","\"queri","\"validator\"}","([]message,","(anytype,","(c","(interface{},","(uint,","*converterforanobject)","*validatorforanobject)","//","0;","10,","1,并且把",":=","=","[]def.operator{","[]def.parameter{","[]definition.operator{newcustom(f,\"custom","anoth","anytyp","anytype)","api","array\",","bool(tag","built","byte(tag","call","concret","context.context,","convert","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","count","count)","creat","custom","data","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","definit","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","descript","description\")}","description:","doc","done","err","error","error)","error)。其中参数的","error.","error。其中","example:","exp:","f","f(context.context,","f.","field","file","for(f","func","func(ctx","func.","function:","gen.","gener","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","go","go.","in()","indic","int","int(tag","int)","int16(tag","int32(tag","int64(tag","int8(tag","interfac","interface{})","interface{},","it'","kind","kind()","list","listmessag","listmessages(ctx","make([]message,","messag","message.listmessages,","messages\"),","messages\",","messages.","method:","name:","newcustom","newcustom(f","nil","nil,","nirvana","number","object","object,","object.","objv2,","one.","oper","operate(ctx","operator.","operators:","operator,那么","operator:","operator:valid","out","out()","paramet","parameters:","playground/validator,提供了用于生成","reader.","recommended.","reflect.typ","replac","result","results:","results。其中","return","second","signature:","source:","specifi","stream","string","string(tag","string)","string,","struct","struct(inst","struct{}","summary:","tag。","type","type.","uint","uint(tag","uint(value),","uint)","uint16(tag","uint32(tag","uint64(tag","uint8(tag","unless","us","user","valid","validate(object.(*object));","validation,","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","valu","var","way","{","{return","}","}),","},","业务函数","中使用","中添加","中,都有一组","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","会从第一个","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","包提供了工具方法用于将转换函数包装成","包的实现基于","包路径:","包还提供了方法用于创建自定义验证器:","可以不同。","和","和业务函数的参数一一对应,而","和返回值的","在","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在每个","在没有","对于结构体类型,在需要的字段上添加名为","并且会检查最后一个","接口,可用于针对单个参数或返回值进行验证和修改:","提供了","提供了两种类型的","方法获取类型,","是具体要验证的类型,不能使用接口。","是链式调用的,也就是说上一个","有时候默认的验证器不能覆盖复杂的验证需求,因此","注意:oper","的","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的情况下,nirvana","的方法:","的最小值为","的示例:","的返回值会作为下一个","类型。","类型。业务函数的参数也响应的变成了","类型是否和业务函数的参数类型一致。","类型转换为了","自定义验证器","转换函数必须符合","这个例子中,验证器要求","这是一个在","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","验证器函数必须符合签名"],"concepts/filter.html":["*http.request)","/","//","/。","/,如果存在就重定向到没有","/,如果没有就加上","application/x","befor","bool","data,然后","fals","false,","file。","fillleadingslash","filter","filtered.","form","func(resp","github.com/caicloud/nirvana/servic","handl","highest","http.responsewriter,","itself.","lifecycle.","matching.","mean","multipart/form","nirvana","pars","parserequestform","path","prioriti","redirecttrailingslash","req","request","request,","request.","return","router","run","type","url","urlencod","want","www","则表示请求不应该被继续处理,立刻丢弃。","包路径:","和","在整个","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","尾部是不是存在","提供了","提供的一些","机制,可以在收到一个请求的时候,立刻进行处理。并根据","框架中处于最高优先级。filter","的路径上。","的返回值来确定是直接丢弃该请求还是继续处理。","过滤器","返回","这两种类型的请求体,并转换为","这个过滤器判断","这个过滤器只针对","首部有没有"],"concepts/prefab.html":["\"context\",","(interface{},","...","//","=","[]def.parameter{","context","context.context)","contextprefab","contextprefab。请参考","creat","data.","def.definition{","def.prefab,","error)","form","github.com/caicloud/nirvana/servic","http","instanc","instance.","interfac","intern","make","make(ctx","modifi","name","name()","name.","name:","nirvana","paramet","parameters:","prefab","prefab。","prefab,即","prefab,名称为","reflect.typ","registerprefab()","request","return","servic","service.contextprefab。这个","someapi","sourc","source:","source。其他的","string","type","type()","type.","unmarsh","var","{","}","},","中一类特殊的","中实现的唯一一个","从请求中获取数据。","但是一般情况下,我们不应该这样使用","使用方法如下:","包的","包路径:","即可。","只需要将业务函数对应位置的","可以通过","和","将框架传递给它的与请求绑定的","提供的","是","来自于服务端本身。","注册需要的","的数据来源都是来自于请求,而","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","设置为","返回回去。"],"concepts/modifier.html":["*/*。","*definition.definition)","api","consum","consumeallifconsumesisempti","consumenoneforhttpget","consumer,即允许请求体为空。","context","context.context。","context。在这种场景下,如果每个","definit","definition.error。","definitionmodifi","definition。在我们实际开发过程中,经常会要求","delet","firstcontextparamet","func(d","github.com/caicloud/nirvana/servic","http","init","lasterrorresult","modif","modifi","modifiers。","nirvana","pkg/apis/modifi","prefab。启用之后,所有业务函数的第一个参数必须是","produc","produceallifproducesisempti","producenoneforhttpdelet","producer,即允许响应体为空。","type","下查看启用的","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","中,每一个","为所有","为所有的","为空的","会显得非常冗余。因此","公共部分的构建,而每个","创建的项目中,可以在","加上","加上空的","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包路径:","和","在","在使用","如下:","完成","实际上要填写的部分就是只与自身业务相关的信息。modifi","提供了","提供的","机制,允许在","生效之前,对","的","的最后一个返回值加上","的第一个参数添加上名为","类型的","这个","这样就能通过","进行修改。","都有一个对应的","都需要去描述这个参数,那么","默认启用的"],"concepts/middleware.html":["\"/path\",","/","//","/path","/path/path2","/path/path2/oth","1","1.","2","2.","3","3.",">","[]def.middleware{somemiddleware},","actions.","call","carri","chain","chain)","chain.continue()","contain","context.","continu","continue(context.context)","def.descriptor{","describ","descriptor","error","execut","form","func(context.context,","github.com/caicloud/nirvana/definit","interfac","middlewar","middlewares.","middlewares:","next","nirvana","on,","pass","path","path:","subsequ","type","url","want","{","}","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","且成功匹配的情况下,中间件的执行按照","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中间件","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件添加在","中:","包路径:","如果以下路径都添加了中间件:","有关,因此如果多个","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","添加成功后,所有前缀匹配","的请求都会执行这个中间件。","的顺序。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","那么如果存在请求"],"concepts/context.html":["\"application/x","\"content","\"multipart/form","([]string,","(multipart.file,","(reader","(string,","*http.request","//","bodi","body()","body.","bool","bool)","called.","check","code.","contain","content.","contentlength","contentlength()","contenttyp","context","context.","contextprefab","context。http","data","data\".","describ","extend","false,","file","file(key","form","form(key","github.com/caicloud/nirvana/servic","header","header(key","headerwrit","headerwritable()","http","http.responsewrit","http.responsewriter.","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","int","interfac","io.readcloser,","key.","length","method","nirvana","ok","once.","path","path(key","queri","query(key","read","reader","recal","request","request()","request.","responsewrit","responsewriter()","responsewriter。可是使用","return","routepath()","servic","statu","statuscod","statuscode()","string","string)","string,","string.","type","type\"","urlencoded\"","valid","valu","valuecontain","valuecontainer()","whether","writeheader()","writeheader().","written","www","{","}","中包含","中间件不应该修改","中,context","会把对应的","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","包的","包路径:","和","在","在一个请求路由匹配成功后,nirvana","方法获得","框架会为每个请求构建这样的","用于传递请求的上下文。context","的","相关接口如下:"],"concepts/source.html":["(interface{},","//","8","[]consumer,","consum","container.","context.context,","current","data","defaultvalu","definition.sourc","error","error)","func","gener","generate(ctx","generator.","generator。这些","generator:","github.com/caicloud/nirvana/servic","interfac","interface{},","name","nirvana","object","paramet","parameter.","parametergener","parametergenerator)","reflect.type)","regist","registerparametergener","registerparametergenerator(gener","return","servic","sourc","source()","source:path,query,header,form,file,body,auto,prefab。","string,","target","type","us","valid","valid.","validate(nam","valu","valuecontainer,","vc","whether","{","}","不能满足实际的业务需求,可以通过","包提供的方法注册自定义的","包路径:","如果","对应一个","每种","种类型的","负责一种类型的参数的验证和类型转换工作。","默认提供了","默认提供的"],"concepts/destination.html":["(goon","(or","//","1.","2.","3","3.","[]producer,","api","bool,","case","code","code.","context","context.","context.context,","continue):","current","deal","definit","definition.destin","definition.typ","descid","destin","destination()","destinationhandl","destinationhandler)","destination:meta,data,error。","err","error","error)","error.","everyth","execute.","false,","finish","func","github.com/caicloud/nirvana/servic","go","goon,用来确定是否需要执行下一个","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler:","higher","int","int,","interfac","interface{})","look","mean","next","nil","nil.","nirvana","noth","nothing)","ok,","prior","prioriti","priority()","produc","reflect.type)","regist","registerdestinationhandl","registerdestinationhandler(handl","result","return","run.","servic","someth","statu","subsequ","success","take","target","three","true,","type","type.","us","valid","validate(target","valu","value.","whether","wrong,","wrong.","{","}","不能满足实际的业务需求,可以通过","先执行。并且执行之后会返回","包提供的方法注册自定义的","包路径:","如果","存在优先级,优先级高的","对应一个","每种","种类型的","负责一种类型的返回结果的数据转换工作。","默认提供了","默认提供的"],"concepts/error.html":["\"${name}","\"exampl","\"there","\"thi","${id}\")","&message{","(*message,","//","100","101\",\"data\":{\"id\":\"101\"}}","200","404","500","=",">","api","code","code()","code.","common","contain","content\",","content\"}","content:","context.context,","correct\")","correct\",","curl","data","err","error","error()","error)","error.","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。创建","error,但是第一种方法比第二种多出更多特性:","example\",","example\",\"content\":\"exampl","func","getmessag","getmessage(ctx","github.com/caicloud/nirvana/error","golang","handler","http","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/101,即可得到一个","id","id,","id.","id:","id,也就是","implement","inform","int","int)","interfac","interface,","interface{}","intern","messag","message()","messagenotexist","messagenotexist.error(id)","nil","nil,","nirvana","notfound","object","reason","reason。","reason,方便客户端判断错误类型。","return","server","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","specifi","statu","string","title:","type","us","var","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","}","},","中,我们也经常看到使用数字","中,错误需要实现","为了方便使用,nirvana","于是","介绍","使用","使用范例","包","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包路径:","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在实际的业务中,http","在常见的商业","字段中,可以在客户端使用","对于这种错误,都会以","我们建议","接口。即:","接口。如果实现了,就会以","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","提供了","提供了一个新的接口:","方法一","方法二","是否由这个错误工厂生成。","来唯一确定一个错误","来标志的错误。但是数字","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","的","的响应,响应体为:","的形式判断一个","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的方式有两种:","的格式满足:","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的返回值作为","的返回值作为数据返回。","第一种方法带有","第一种方法支持使用","编译运行后可以得到结果:","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","访问","这两种方法都可以创建","这样做有两个优势:","这种形式的","通过","通过具体错误的","里的值进行文本国际化。","错误包","项目名[:模块名]:错误名"],"concepts/method.html":["\"count\",","\"list","\"listmessages\"),","\"method","\"methodname\")","\"number","\"queri","&container{title,","&container{}","(*container)(nil)","([]message,","(ctx","(m","*contain","*container)","*message.contain","//","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0;","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","10,","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","9\",\"content\":\"method","9\"}]",":=","=","[]def.parameter{","[{\"id\":0,\"title\":\"method","api","array\",","contain","content","content\"))","content}","context.context,","count","count)","creat","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","description:","error)","exampl","example\",","func","function:","get()","get(typin","github.com/caicloud/nirvana/definition/method","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","http://localhost:8080/apis/v1/messag","instance)","insterface{})","int)","interface{},","list","listmessag","listmessages(ctx","main.go","make([]message,","messag","messages\"),","messages\",","messages.","method","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","name:","newcontain","newcontainer(title,","nirvana","number","panic。","parameters:","put()","put(in","receiv","results:","return","source:","specifi","string","string)","struct","summary:","titl","type","var","{","}","},","业务方法:","中创建实例并通过","中,业务函数是","为了保证业务与","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","其中","具体实例类型","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","包介绍","包是一个全局实例容器,每种类型对应一个实例。","包路径:","包,用于分离实例的创建和","即可得到返回结果:","和","在","定义。","定义的无关性,nirvana","定义:","实例","实例。","接口实例类型","提供了","方法包","是一样的。","注意,get()","然后编译运行,访问","生成匿名函数:","用于生成一个匿名函数,生成的函数的签名没有方法的","的对应关系。","类型","获取接口实例:","设置接口实例:","请求的","这就是","部分,例如:","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。"],"concepts/configurer.html":["(c","*config","*config)","...","...configurer)","...definition.descriptor)","...service.definitionmodifier)","...service.filter)","//","api","config","config.","configur","configure(configur","configurers.","describ","descriptor(descriptor","error","filter(filt","filter。","func","func(c","github.com/caicloud/nirvana","ip","ip(ip","keyfil","locked.","log.logger)","logger(logg","logger,用于输出错误。","modifier(modifi","modifier。","nirvana","occur","panic","port(port","server","server.","string)","struct","tl","tls(certfile,","type","uint16)","us","{","}","包路径:","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在运行过程中使用的","地址。","实现了","描述。所有的","提供的","机制,用于单独配置每一项信息:","添加","添加到","的","设置","设置监听的","设置监听的端口。","证书和密钥。","都通过这个","配置器机制","里。"],"concepts/plugin.html":["\"pluginname\"","(i","*config)","*nirvana.config)","*plugininstaller)","//","=","`c.config(externalconfigname)`/`c.set(externalconfigname,","befor","builder.","c.set(externalconfigname,","careful,","certain","cfg","cfg)`","config","config.","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","conflict","const","current","delet","disabl","disable()","ensur","error","extern","externalconfignam","fielda.","fieldb.","fieldtype)","framework","func","func(c","get/sav","global","init()","instal","install(build","install/initi","interfac","name","name()","name.","need.","nil","nil)","nirvana","nirvana.","nirvana.configur","nirvana.registerconfiginstaller(&plugininstaller{})","packag","pleas","plugin","plugin.","plugininstal","plugins.","regist","registerconfiginstaller(ci","return","server","server.","servic","service.builder,","set","starting.","string","struct{}","stuff","terminating.","type","uninstal","uninstall(build","uniqu","us","won't","{","{...)","{...}","}","一个基本的插件框架如下:","一般情况下,插件应该通过插件","中添加插件配置。","包提供的方法进行注册:","在","插件实现了这个接口之后,即可通过","插件接口:","插件机制","的","进行注册。然后提供相应的","配置基本信息以外,还提供了插件机制。","除了使用"],"concepts/clients.html":["!=","\"clientset/svca\"","\"clientset/svcb\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","$","$gopath/src/","$gopath/src/clientset","$gopath/src/svca","$gopath/src/svcb","&clientset{}","(","(c","(interface,",")","*clientset)","*rest.config)","../clientset/svca","../clientset/svcb","//","10)",":=","=","a.","b.","c","c,","c.svca","c.svca,","c.svcb","c.svcb,","cd","cli","cli.svca().v1().listmessages(context.background(),","client","client.go","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","contain","creat","describ","err","error","error)","func","host:","import","init","interfac","log.fatal(err)","log.info(msgs)","main()","mkdir","msgs,","multipl","mustnewclientset","mustnewclientset(cfg","new","newclientset","newclientset(cfg","newclientset(cfg)","nil","nil,","nirvana","occurs.","output","packag","panic","panic(err)","rest","return","scheme:","set","set.","struct","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","touch","type","types.go","v1","v2","var","{","}","})","│","└──","├──","两个服务项目。","中创建","为了演示这个过程,我们逐步构建这个项目。","代码如下:","使用","创建","创建项目","即创建了","和","在","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","多客户端整合","整合客户端","此时","没有太大区别:","然后创建两个服务项目(仅用于演示):","生成","生成客户端","的使用方法和普通","的客户端:","的项目结构如下:","统一网关访问","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","项目,用于保存所有服务的客户端:","首先创建","默认情况下,我们会为每个服务生成如下结构的客户端:"],"plugins/logger.html":["//","`desc:\"debug","`desc:\"log","`desc:\"overrid","basic","bool","command","config","configur","contain","debug","enabled\"`","field","flag。","framework","github.com/caicloud/nirvana/plugins/logg","global","int32","level","level.","logger","logger\"`","logger.","logger。","logs\"`","mode.","modifi","nirvana","option","output","overrideglob","plugin","sens","server","struct","true,那么除了设置当前","type","{","}","为","以外,还会设置全局的","包的","包路径:","启用","就无效。如果","暴露","模式后,level","的","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","编写,只是为了通过","这个插件暴露三个选项:"],"plugins/reqlog.html":["/","bool)","configurer:","default()","disable()","doublelog(en","github.com/caicloud/nirvana/plugins/reqlog","id","key,默认为","log.logger)","logger","logger(l","nirvana.configur","request","requestid(en","requestidkey(key","sourceaddr(en","string)","x","上的中间件,用于打印所有路由匹配成功的请求的日志。","关闭插件","包路径:","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件并使用默认配置","插件","的","设置","设置请求","请求日志插件","请求日志插件会添加一个在"],"plugins/metrics.html":["/metric","api","configur","configurer:","disable()","github.com/caicloud/nirvana/plugins/metr","namespac","namespace(n","nirvana.configur","path","path(path","prometheu","prometheus,提供了一个","string)","修改。","关闭插件","包注册指标。采集端可以通过","包路径:","可以通过","启用插件后,可以直接向","插件","用于暴露服务端指标。","监控指标插件","监控指标插件基于","设置","路径","路径,默认值为","采集指标数据。"],"plugins/tracing.html":["/","//","addhook(hook","after(ctx","agenthostport","allow","befor","before(ctx","configurer:","context.context,","custom","customtracer(trac","defaulttracer(servicenam","disable()","exec","github.com/caicloud/nirvana/plugins/trac","hook","hook)","inform","interfac","nirvana.configur","opentrac","opentracing.span)","opentracing.tracer)","process","request","span","span.","string)","string,","trace","tracer","type","{","}","上添加一个中间件用于提取","使用自定义的","使用默认的","信息。","关闭插件","包路径:","接口实现了请求跟踪机制,会在","接口:","插件","设置请求","请求追踪插件","请求追踪插件基于"],"plugins/profiling.html":["/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","api,用于取得服务运行时信息。","configur","configurer:","descriptor:","disable()","github.com/caicloud/nirvana/plugins/profil","net/http/pprof","nirvana.configur","path","path(path","string)","一致的","修改。","关闭插件","前缀路径","包路径:","可以通过","性能分析插件","性能分析插件添加与","插件","设置路径前缀,默认值为","默认情况下,插件会添加四个"],"plugins/version.html":["/version","/version。","api","commit","configurer:","description(descript","disable()","github.com/caicloud/nirvana/plugins/profil","hash","hash(hash","name(nam","nirvana.configur","path(path","string)","version(vers","值","值。一般情况下可以设置为代码的","关闭插件","包路径:","插件","版本信息插件","版本信息插件提供一个","设置","设置服务","设置服务名称","设置服务版本号","设置服务的描述","路径默认为","路径,默认值为","返回服务的版本信息。api"],"plugins/healthcheck.html":["/healthz","/healthz。","api","checker","checker(check","configurer:","context.context)","disable()","error","func(ctx","github.com/caicloud/nirvana/plugins/healthcheck","healthcheck","healthchecker)","nil。如果服务异常,则返回相应的错误。","nirvana.configur","path(path","string)","type","健康检查插件","健康检查插件提供一个","关闭插件","包路径:","如果服务正常,则","应该返回","插件","插件提供了一个函数接口:","用于检查服务是否正常。","设置","路径,默认值为","返回服务当前是否健康。api","默认路径为"],"topics/start.html":["$","$gopath/src","1.10.x","1.9.x","account}/nirvana.git","api","cd","clone","cmd/nirvana","command","config","config.json","convert","definit","definition/method","dep","dep:https://github.com/golang/dep","error","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","fork","git","git@github.com:{your","github","github.com/caicloud/","githuh","go","golang","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","log","mkdir","nirvana","oper","p","plugin","pr","repo","server","servic","service/rout","test","util","validators,用于","vendor","vendor。","一般情况下,我们使用最新版本的","上","与","中。","中包含了两个组件功能实现了","中包含了许多实现了","中,不能在任何子目录下使用","之后,通过","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","以及插件化功能。","其中","准备工作","函数。请参考","到自己的账户下,然后下载源码到本地开发目录中:","功能,并提供了从","包之间的依赖关系:","包包含","包包含多个工具用于","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了框架","包帮助用户快速构建项目。","参数的类型转换和数据验证。","另外","只使用","和","在","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在完成修改并提交到自己的","大版本的兼容性。即使用","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","工作流程","帮助用户把实例方法转换为","开发工具介绍","开发的情况下,需要保持对","提交代码。","插件接口的插件。","方法包。","是","是基础包,分别负责日志基础接口和错误处理基础接口。","框架的","框架的设计核心思想是:隔离","框架设计概览","测试以外,还需要使用","生成,客户端代码生成,项目结构生成。","的主要命令,利用","的入口包。","的兼容性。","的形式向","的配置文件在根目录的","路由和处理的所有功能。","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行开发,但是需要保证两个","除了常规的"],"topics/log.html":["\"error\"","\"fatal\"","\"info\"","\"warn\"","(",")",".","...interface{})","//","1","1.","2","2.","3","3.","4","4.","5.","6.","=","[5,","api","api,并且允许用户接入其他日志系统。","append","argument","call","called.","can't","class","clone","clone(wrapp","const","correspond","current","custom","debug","document","error","error(...interface{})","error.","errorf","errorf(string,","errorln","errorln(...interface{})","exit","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","fmt.print;","fmt.printf;","fmt.println;","follow","four","frequent","glog","golang","handl","immediately.","implement","import","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","information.","int)","int32","interfac","level","level.","leveldebug","leveldebug)","levels.","log","log.","logger","logger.","logger,使用的是","logs,","logs.","mani","manner","math.maxint32","mean","method","missing.","more","neg","new","newlin","nil.","os.exit(1)","os.exit(1).","output","outsid","panic","posit","provid","recommend","recovered.","report","request","return","rules:","see","set","setdefaultlogger()","sever","severityerror","severityfat","severityinfo","severitywarn","silentlogg","site","situation.","stderr","stdlogger。可以通过","string","stripped.","strongli","type","us","usual","v","v(level)","valu","verbos","verboser,","verboser.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","whether","wrapper","wrapper.","write","{","}","之前,需要知道以下几件事情:","包","包提供了一组基础的日志","包有一个默认的","参考了","变更。","和一个使用了","在","在实现一个自定义的","对于不需要输出日志的场景,使用","方法。clone","方法用于在对","时候,使用","标准接口如下:","正确实现","的","的实例而不是","这套日志","进行包装的时候,获取正确层级的调用栈信息。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。"],"topics/errors.html":["\"${user}","(",")","...interface{})","//","11.2","11.3","11.4","11.5","2.3.3","2295,","2774,","3","3.1","3.2","4","4.2","4.4","4918,","5","5842,","6","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8.1","=","api","badgateway","badrequest","bool","build","build(reason","builder","builder,factori","check","code()","conflict","creat","current","deriv","derived(","error","error(format","error(v","error)","error。","error。其中","errros.","expectationfail","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fix","forbidden","format","format.","format,比如","found\")。","gatewaytimeout","gener","gone","http","httpversionnotsupport","immedi","insufficientstorag","int","interfac","interface{}","internalservererror","lengthrequir","lock","loopdetect","message()","methodnotallow","networkauthenticationrequir","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","nirvana","notaccept","notextend","notfound","notimpl","paymentrequir","preconditionfail","preconditionrequir","predefin","proxyauthrequir","reason","reason,","reason.","requestedrangenotsatisfi","requestentitytoolarg","requestheaderfieldstoolarg","requesttimeout","requesturitoolong","rfc","serviceunavail","string","string)","string,","teapot","toomanyrequest","type","unauthor","unavailableforlegalreason","unprocessableent","unsupportedmediatyp","upgraderequir","us","v","v.","var","variantalsonegoti","without","{","}","主要是以","之上,构建了","则用于判断一个错误是否是由当前的","则用于构建特定的","加上一些附加属性,用来表示返回的错误码等信息。","包","包中存在三个概念,分别是","包中):","包提供的","包的依赖,可以自行实现错误包,只要产出的错误符合","包类似于标准库的","包,但是提供了方法用于生成格式化的错误和错误判断。","可以构建带有","和","因此在","就足够了。但是为了让错误能够以","接口即可。","接口如下(这个接口并没有显式定义在","接口如下:","接口,用于创建具有一类特征的","方法用于直接创建出","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","状态码作为基础的:","生成。","用于传入参数输出一个真正的错误。","用于构建","的","的两个方法:","的形式向客户端返回,我们还需要给","的错误)。","目前","识别的错误,但是如果业务逻辑中如果不希望引入对","这个包方便了用户创建能够被","这样就能够非常方便的错误创建和错误判断了。","通常情况下,有","首先看"],"topics/definition.html":["!=","\"\"","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/some\",","\"accept\"","\"accept\".","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"content","\"converter\"}","\"create\"","\"data\"","\"delete\"","\"error\"","\"file\"","\"form\"","\"get\"","\"header\"","\"list\"","\"meta\"","\"multipart/form","\"patch\"","\"path\"","\"prefab\"","\"query\"","\"source\".","\"source,name\".","\"text/plain\"","\"update\"","\"validator\"}","(","(anytype,","(c","(interface{},",")","*converterforanobject)","*validatorforanobject)","//",":=","=","[]definit","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","`source:\"header,cont","`source:\"query,start\"`","accept","accepttypeal","actions.","altern","anytyp","anytype)","api","asynccr","asyncdelet","asyncpatch","asyncupd","auto","back","behavior.","bind","bodi","body.","brief","built","call","carri","cases,","certain","chain","chain)","chain.continue()","child","children","clearer","client","client.","code","code.","combin","concret","const","consum","consume.","consumes.","contain","content","content.","contenttyp","context.","context.context,","continu","continue(context.context)","converter:","converterforanobject","convertobjectv1toobjectv2(object.(*objectv1))","creat","create)。","current","custom","data","data\"","data\".","data.","default","defin","definit","definition.","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definitions.","delet","describ","descript","descriptor","descriptor'","descriptors.","destin","differ","element","empty,","equal","err","error","error)","error.","errorproduc","etc.","ex.","exampl","example.","example:","execut","exist","f","f(context.context,","field","field.","file","first","form","format","from.","func","func(context.context,","function","function.","gener","generator.","go.","handl","handler","handler.","header","header.","http","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","identifi","in()","indic","inherit","instanc","int","interfac","interface{}","interface{})","it'","key,","kind","kind()","last","line","list","locat","make","mani","mean","meta","method","method.","middlewar","middlewares.","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","modifi","more","name","name,","next","nil","nil,","nirvana","object","object,","object.","objv2,","occur","on","on,","one.","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operators:","out","out()","overrid","paramet","parameter.","parameters.","parent","parent'","pass","patch","path","path.","place","prefab","previou","produc","produce.","produces.","provid","queri","reader.","receiv","recommended.","reflect.typ","replac","request","request.","response.","result","result.","results.","retrun","return","return.","second","set","signature:","sourc","specially.","start","statu","stream","stream\"","string","string,","string.","struct","struct{}","sub","subsequ","succeess","success","summari","tag","tag.","target","time,","treat","type","type\"","type\"`","type.","unless","updat","url","urlencoded\"","us","usag","valid","validate(object.(*object));","validator:","validatorforanobject","valu","value.","values.","want","ways.","write","www","{","{return","}","中提供了","中,提供了","其中","其他与","其他与具体","分别对应","则针对单个的业务参数和返回值,可以对值进行验证和修改。","包","包包含了","包除了包含对","参数和返回值定义","可被","同等级别的字段","和","在","在上面的定义中,存在两个额外功能:","如果希望对","定义,用于描述","定义:","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","方法,这个方法是一个抽象方法,用于描述一种行为(比如","的","的参数与返回值。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的定义以外,还提供了一些函数,帮助快速构建","结构体包含了一个具体的","结构体包含具有如下含义的字段:","继承的字段","路径","路径同等级别的字段","进行扩展,需要遵守上面这些规则。"],"topics/method.html":["(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(c","*container)","...","//","=","api","contain","container.","container:","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","definit","definition.funct","definition/method","func","function","get(inst","golang","ifac","instanc","instance)","instance.","interface,","interface{}","interface{})","interface{},","mappings.","method","method)","method.","methods.","more","need","newcontainer()","on","put","put(inst","putinterfac","putinterface(ifac","return","specifi","string)","struct","type","us","var","want","{","}","一般情况下,用户会使用这个全局的容器。","之前使用。","包","包中,可以看到","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包还提供了一个全局的","可以在","和","在","容器如下:","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","时,使用","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","真正的实例,即","获取某个实例的方法,之后再在服务启动逻辑里","过程。也就是可以在声明","这个主要是利用了","这个实例方法容器分离了方法的"],"topics/converter.html":["\"converter\"","(anytype,","//","=","`converter`.","anytyp","anytype)","built","const","convert","converter.","creat","data","definition.oper","definition.operatorfunc(operatorkind,","describ","error)","error.","f(context.context,","f)","for(f","func","func.","gener","go.","interfac","interface{})","kind","kind.","mean","opeartor","oper","operatorkind","operators/convert","operator。","operator:","packag","paramet","recommended.","return","second","signature:","string","string,","struct","type","us","{","}","包","包提供了一个","实现,帮助用户快速构建名为","的","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为"],"topics/validator.html":["\"custom\"","\"struct\"","\"validator\"","\"var\"","(",")","//","=","[]definition.operator{newcustom(f,\"custom","`validator`.","allow","anoth","anytype)","automat","base","basic","bool","bool(tag","bool.","built","byte","byte(tag","call","categori","category()","categorycustom","categorystruct","categoryvar","const","context.context","context.context,","contextu","creat","current","custom","definition.oper","describ","descript","description\")}","description()","differ","distinguish","doc","done","error","exp:","expos","f","f.","fields,","func","func(ctx","gen.","gener","golang","gopkg.in/go","implementation.","indic","information.","int","int(tag","int*,","int16","int16(tag","int32","int32(tag","int64","int64(tag","int8","int8(tag","interfac","interface{})","interface{},","kind","kind.","mean","nest","newcustom","newcustom(f","object","opeartor","oper","operator.","operatorkind","operators/valid","operator:","otherwis","packag","pass","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","return","specifi","string","string(tag","string)","string,","struct","struct(inst","struct.","structs,","tag","tag()","tag.","type","type.","types.","types:","uint","uint(tag","uint*,","uint16","uint16(tag","uint32","uint32(tag","uint64","uint64(tag","uint8","uint8(tag","unless","us","user","valid","validation,","validator.","way","{","}","包","包提供了一系列的方法帮助用户快速生成用于校验参数的","基础类型,结构体类型和自定义类型。目前验证方法基于","目前支持三种类型的验证,分别对应"],"topics/router.html":["(executor,","*","*regexp.regexp",".*:","/","//","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/{regexp:[a",">","[]index","ab","api","call","can't","carri","chain","children","contain","context","context.","continu","continue(context.context)","definit","describ","error","error)","execut","execute(context.context)","execute.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exp","expression.","find","fix","form","full","fullmatch:.*","fullmatchregexpnod","func(context.context,","gener","handler","index","indic","inform","inspect","inspect(context.context)","inspector","inspector:","instanc","int","interfac","it'","key","match","match.","middlewar","middlewares.","name","next","node.","node:","nodes:","on,","optim","pass","path","path.","path:","pathnod","po","posit","prefix","regexp","regexp:[a","regexpnod","regexpnode.","regular","rest","return","router","routingchain","routingchain)","routingchain.continue()","segment.","select","servic","service/rout","someth","string","stringnod","struct","submatches.","target","the/rest/path","type","valid","valu","value.","want","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","}","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","下面用一个例子来说明这几个节点:","中间件接口如下:","之前。","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","剩余路径类型节点","剩余路径类型节点:","包","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包进行","包进行路由构建和匹配。","在上面的路径节点中,每个节点都可以绑定一个","如果能返回一个","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","完全匹配。","定义,然后由","实际上是调用的","对于中间件而言,处理完当前的任务之后只需要调用","将","执行完成之后,请求也处理完成了。","来生成一个能够处理当前的路由上下文的","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","路径匹配完成后,会调用匹配链的最后一个节点的","这个节点匹配剩余所有路径。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","通过"],"topics/service.html":["\"application/x","\"content","\"multipart/form","(","([]string,","(goon","(interface{},","(multipart.file,","(or","(reader","(service,","(string,",")","*definition.definition)","*http.request","*http.request)","...definition.descriptor)","...filter)","//","1.","100","2.","200","3.","300","=","[]consumer,","[]filter","[]producer,","[]string","[]string)","add","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","api","befor","bodi","body()","body.","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","bool","bool)","bool,","build","build()","builder","builder.","builder:","called.","case","check","code","code()","code.","common","const","consum","consume(r","consumer,converter,prefab","contain","container.","content.","contentlength","contentlength()","contenttyp","contenttype()","context","context.","context.context)","context.context,","contexthttpcontext","continue):","convert","creat","current","custom","data","data\".","data.","deal","defaultvalu","definit","definition.","definition.destin","definition.sourc","definition.typ","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definition。请求过滤器则是在","descid","describ","descriptor","destination()","destinationhandl","destinationhandlerdestinationhandl","element","err","error","error)","error.","everyth","execute.","executed.","executor","exists,","extend","false,","file","file(key","filter","filtered.","filters()","filters.","finish","form","form(key","func(ctx","func(d","func(resp","function","gener","generate(ctx","generator.","go","golang","handl","handle(ctx","handle.","handler","handler.","handlers.","header","header(key","headerwrit","headerwritable()","higher","highest","highprior","http","http.handler","http.handler,用来处理请求。","http.responsewrit","http.responsewriter,","http.responsewriter.","httpcontext","ignor","implement","inform","instanc","instance.","int","int,","interfac","interface,","interface{}","interface{})","interface{},","intern","io.readcloser,","io.reader,","io.writer,","it'","it.","itself.","key.","length","lifecycle.","log.logg","log.logger)","logger","logger()","look","lowprior","make","make(ctx","map[string][]definition.definit","map[string][]definition.middlewar","marshal","match","matching.","mean","mediumprior","messag","message()","meta","method","middlewar","middlewares()","middlewares.","mime","modifi","modifier()","modifier.","name","name()","name.","next","nil","nil.","nirvana","noth","nothing)","object","object.","occurs,","ok","ok,","on","once.","panic.","parameter.","parametergener","parametergeneratorparametergener","path","path(key","prefab","prior","prioriti","priority()","produc","produce(w","producerconsum","queri","query(key","query,head","r","read","reader","recal","reflect.typ","reflect.type)","req","request","request()","request,","request.","requests.","respons","responsewrit","responsewriter()","responsewriterresponsewrit","result","return","routepath()","router","router.","run","run.","server.","servic","service.","service.servehttp()","set","setlogg","setlogger(logg","setmodifi","setmodifier(m","someth","sourc","source()","specif","specifi","statu","statuscod","statuscode()","string","string)","string,","string.","subsequ","success","take","target","three","true,","type","type\"","type()","type.","unmarsh","urlencoded\"","us","user","v","v.","valid","valid.","validate(nam","validate(target","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","vc","w.","want","whether","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","{","|","}","↑","↓","中。","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","修改器用于在生成路由之前修改","修改器,请求过滤器,api","其中","则是将业务函数的返回值转换并写入到响应的","包","包实现了","包的入口是","包里提供了一个","和","基础类型的转换器这些转换器一般是用于将请求里的","处理框架:","实现了","实际上是一个","对应","将返回值转换为字节写入响应中。在","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","描述符。构建完成的","提供了多个方法用于设置生成服务需要的日志,definit","是业务函数返回值处理器,通过调用","是对","是真正的参数生成器,通过调用","服务。因此","来提供","构建","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于生成业务函数的参数的","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的基础类型,供业务函数使用。//","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型的","转换为路由需要的数据结构,涉及到以下内容:","返回出去,供业务函数使用。//","还会将","针对请求的"],"topics/nirvana.html":["(builder","(c","*config","*config)","...","...configurer)","//","activ","alway","anoth","api","befor","bool","builder","builder()","builder.","called.","check","clean","cleaner","cleaner.","clients.","complet","config","config(nam","config.","configinstal","configur","configure(configur","configurers.","config:","connections.","contain","context.context)","creat","creation,","current","delet","describ","directli","don't","down","err","error","error)","error,","except","extern","form","func","func()","func(c","get","gracefulli","handl","hold","http","instal","install(build","interfac","interface{}","interface{})","interrupt","ip","ip()","ip.","it.","listen","lock","locked()","locked.","log.logg","logger","logger()","logger.","method","modifi","name","name()","name.","new","newserv","newserver(c","nil","nirvana","occur","occurs.","one.","panic","plugins.","port","port()","port.","request","requests.","resourc","return","router","same","serv","serve()","server","server.","servic","service.builder,","services.","set","set(nam","shut","shutdown","shutdown(ctx","shutdown,","special","start","starting.","string","string)","string,","struct","stuff","terminating.","type","uint16","uninstal","uninstall(build","until","us","via","without","won't","{","}","中可以看到","中,存在一些","也在当前包中。如果需要对配置进行扩展,增强","创建","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","包","包依赖了","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","和","和插件系统。这个包放置在根目录中是因为这个包是","和第三方功能的扩展)。","在","接口如下:","提供的用于生成","方法安装插件。","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","的顶级包,而且其依赖的所有包只来自","级别的配置,这些配置是针对当前服务的。而对应的","自身和标准库(config","需要使用"],"topics/config.html":["'myconfig.name.firstname'.","'nirvana.ip'","(e.g.","(from","(in","(pem","(with","*cobra.command","*int,","*nirvana.config)","*string).","...customoption)","...definition.descriptor)","...plugin)","./","./config/","//","/etc/nirvana/",">","[]string","[]string.","`","`desc:\"desc","`desc:\"nirvana","`desc:\"tl","`desc`","`desc`).","`key`","`pointer`","add","add(point","addopt","addoption(prefix","ag","age\"`","associ","basic","behavior","bool","bool.","case","cert","certif","char","check","collect","comamnd","command","command(cfg","command.","config","config.","configur","configure(cfg","contain","convert","current","custom","customopt","data","default","default,","desc","describ","descript","divid","doc","don't","empti","enabl","enableplugin","enableplugin(plugin","env","env,","error","exampl","example):","example.ag","example.firstnam","example:","example_ag","example_first_nam","execut","execute(descriptor","executewithconfig","executewithconfig(cfg","executing.","field","field,","field.","file)","file,","fill","first","firstnam","flag","flag,","flags,","flags/env/config","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","follow","format)","func","get(key","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","github.com/spf13/cobra","github.com/spf13/vip","given","golang","help","help`,","here","hook","hook()","hook.","https\"`","https.","insensit","instead","int","int.","int16","int32","int32.","int64","int64.","int8","interfac","interface.","interface{}","interface{})","interface{},","ip","ip\"`","is:","isset","isset(key","it'","key","key.","key/valu","listen","listen.","locations.","method","methods.","name","name\"`","name()","name.","namespaces.","nirvana","nirvana.","nirvana.json","nirvana.toml","nirvana.yaml","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","non","obtain","on","option","option,","options.","option,并且实现","order:","overrid","override,","place","plugin","plugins.","pointer","port","port\"`","prefix","prioriti","privat","recommended.","regiser.","retriev","return","run","see","server","server.","set","set(key","set.","sethook","sethook(hook","short","shortflag","singl","specif","store,","store.","string","string)","string,","string.","struct","struct.","tag","time.dur","time.duration.","two","type","uint","uint.","uint16","uint32","uint32.","uint64","uint64.","uint8","up","us","use.","valu","via","viper","want","{","{executablefilepath}/","{executablefilepath}/config/","}","中传递","中的公开字段根据一定的规则(规则参考上面的注释)从","以外,config","包","包中对","包会从以下文件列表中读取配置文件:","包利用","包提供了一个","包的插件能力:","和","和相应的功能。","和配置读取,为","如果读取到配置文件,那么除了使用","实现了","扩展了","接口。用户在","接口如下:","接收配置以外,还可以通过一些帮助方法获取配置:","服务启动提供了命令行支持。","服务配置的特殊性,config","来启用插件,并且将插件","来表达这些配置:","注:如果在","由于","目录:","要求每个插件提供一个","进行了扩展,涉及到字段的改变,也需要在这个包中修改","配置文件名:","除了插件"],"topics/rest.html":["\"http\"","\"https\".","(*client,","(*http.response,","(c","(r","*client)","*config)","*http.request)","*map[string]string)","*request","*request)","...","...interface{})","//","api","bodi","body(contenttyp","builder","check","client","client.","client。而","code","config","config.","context.context)","creat","data","data(valu","definit","describ","do(ctx","do(req","empty,","error","error)","execut","executor","file","file(nam","form","form(nam","func","header","header(nam","host","host:port","http","http.defaultcli","implement","int,","interfac","interface{})","meta","meta(valu","method","newclient","newclient(cfg","nirvana","parameter.","path","path(nam","path.","path,query,header,form,file,bodi","pattern","pointer.","prefab","queri","query(nam","request","request(method","request.","requestexecutor","requests.","request。config","respons","rest","result.","right.","scheme","scheme.","server.","set","specif","statu","string","string)","string,","struct","type","url","us","used.","valu","{","}","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","会被由命令","保存了一个请求的数据,用","则由","创建,用来表示每一个","包","包提供了一个简单的","和","在这个包中,主要包含三个概念:config,cli","方法返回,因此这两种类型没有对应的方法。","是","是由服务端生成而不由客户端提交,error","服务。","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","注:这个","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","用于真正发起请求,并完成","用于访问","由","的填充。","的方法与","的配置,用于创建","的除了","请求。"],"topics/utils.html":["\"\"","\"alias\"","\"descriptors\"","\"modifiers\"","\"origin\"","(","(*api.definitions,","(*definitions,","(*types.package,","(a","(ac","(b","(exported)","(includ","(types.object,","(unexported)",")","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*comment","*contain","*container)","+nirvana:api=option:\"value\"。","...","...definition.descriptor)","...service.definitionmodifier)","...string)","//","0.","=","[]*ast.commentgroup","[]byte","[]exampl","[]funcfield","[]int","[]paramet","[]result","[]string","[]string{commentsoptiondescriptors,","[]structfield","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","abov","add","adddescriptor","adddescriptor(descriptor","addmodifi","addmodifier(modifi","alias.","analyz","analyzeranalyz","ananlyzer.","anonym","api","apibuild","apis.","array,","befor","between","bool","bool)","brief","build","build()","builder","builder.","builder:","bytes.","call","case","cases,","client","code","code.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","complet","conflict","const","consum","consume.","consumes.","contain","container.","containercontain","content","creat","current","data","data.","declar","def.definition.","default","definit","definition.","definition.destin","definition.method","definition.sourc","definitions.","definition此处的","depend","describ","descript","descriptions.","descriptor","descriptor'","descriptors.","descriptor。然后动态生成一个","destin","differ","directori","elem","element","embed","empti","empty,","encod","equal","error","error)","error.","errorproduc","exampl","example.","extract","field","field.","findpackag","findpackages(target","from.","func","funcfield","function","function.","gener","generate()","generators/golang","generators/swagg","generators/util","github.com/go","go","golang","handler","handler.","hold","http","httpcode","httpmethod","identifi","immedi","import","import(path","index","indic","inform","input","instanc","int","invalid","itself).","key","keyword.","kind","kind.","line","list","lower","main.go","mani","map","map,","map.","map[string][]definit","map[string][]str","map[typename]*typ","mean","method","method.","modifi","modifiers.","name","name.","names.","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newcontain","newcontainer(root","nirvana","nirvana.yaml。","object","objectof","objectof(pkg,","offset","on.","openapi","openapi/spec","option","options.","optionsregexp","origin","out","output","overrid","packag","package.","packagecom","packagecomments(path","packages(par","packages.","paramet","parameter.","parameters.","parent","pars","parsecom","parsecomments(com","path","pkgpath","pointer.","pos.","present","printer","produc","produce.","produces.","project","qualifi","reflect.kind","reflect.structtag","regexp.mustcompile(`^[","relat","request.","rest","result","result.","results.","retrun","return","same","sequenc","short","show","slice,","sourc","specifi","stdout","string","string)","string,","struct","struct,","struct.","structfield","succeess","success","summari","swagger","tag","tag.","target","target.","termin","token.pos)","type","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","type为了能让","uintptr","under","uniqu","upper","us","util","valu","value.","values.","var","vendor","version","ways.","whether","within","{","}","中打印表格的功能。","信息的提取。","包","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中,提供了如下功能:","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包则是利用了","包和","包实际上都是利用了","包提供的数据结构生成","包来说就简单很多了,这个包里包含一个","包的","包相对","包读取源码并生成","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于读取项目源码,并生成与","去读取指定路径的源码,然后从中找到标记了","取得返回值,反序列化成","可以读取源码,获取结构对象和注释信息。","后通过","和","在","大部分字段与","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","客户端。","对应","将","执行","接口。swagger","数据。","文件","文档。","文档和客户端。","有关的所有数据结构,产出的结构可用于生成文档和客户端。","来生成","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","用于分析源码的","用于表示代码注释的","的","的定义。","的调用者。这样就完成了对一个项目的","的返回结果,构建出相应的客户端和文档。golang","相关的所有定义和类型信息。api","相关类型:","系列包","系列包包含:","结构,然后再返回给","能转换为可读的数据结构,构建了","读取源码并进行分析,产出","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","选项的注释。两个选项的值对应两个函数,分别返回","除了","集合上述所有功能的","首先会利用"],"topics/command.html":["!=","\"\",","\"boilerplate\",","\"build","\"creat","\"debian:jessie\",","\"docker","\"first","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"imag","\"init","\"nirvana","\"nirvana\",","\"path","\"registries\",","\"runtim","\"v0.1.0\",","\"version\",","&cobra.command{","&initoptions{}","(","(o",")","*cobra.command","*cobra.command)","*cobra.command,","*initoptions)","*pflag.flagset)","//","/path/to/project\",",":=","=","[]string","[]string)","[]string{},","api","api.register(root)","api,用于生成","arg","args);","base","basic","boilerpl","boilerplate\")","build","buildimag","client.register(root)","client,用于生成","cmd","cmd/nirvana","commands.","err","error","flag","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","func","func(cmd","imag","image\",","imageprefix","imagesuffix","import","init","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","instal","install(flag","log.fatalln(err)","long:","main()","main.go","newinitcommand","newinitcommand()","nil","nirvana","option","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","packag","prefix\")","prefix\",","project","project\")","project.register(root)","regist","register(root","registri","registries\")","return","root","root.addcommand(newinitcommand())","root.execute();","run","run(cmd","run:","runtimeimag","short:","string","struct","structure\",","suffix\")","suffix\",","toolchains\",","type","use:","valid","validate(cmd","var","version","{","}","},","一个创建命令的私有函数","一个表示当前命令的所有参数的","中","中,目前包括三个命令:","到命令中","命令","命令为例,说明单个命令的基本结构:","命令对应的包在","基本结构如下:","如果需要新增命令扩展","实现的","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","接下来以","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法用于安装","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","根命令中,比如:","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","然后在","的功能,需要按照上述结构进行开发。","的文件用于把当前的命令加入到","这个包并进行命令注册:"],"topics/routes.html":["\"/api\",","\"hello","\"here","(against","(response,","(string,","(w.r.t","//","[]definition.definition{","[]definition.parameter{},","[]definition.result{","[]string{\"text/plain\"},","add","anyth","api","approach","basic","case","check","context.context)","core","cover","data","declar","defin","definit","definition.data,","definition.descriptor","definition.descriptor{","definition.error,","definition.get,","definitions:","description\",","description:","doc","documentations,","dri","easi","error","error)","etc.","exampl","follow","formats)","framework!","func","func(ctx","function","function:","functions:","gener","goe","handler(request","happen","i.e.","look","lot","method:","more","need","nil","nirvana","nirvana,","openapi","paramet","parameters:","path:","produces:","request)","results:","return","rout","rule,","signatures)","specif","struct","structur","stuff","such","test","this:","todo:","tri","type:","typic","use,","we'll","world!\",","wrong","you'll","you:","{","}","},"],"topics/cli.html":["/","addit","adopt","alway","api","applic","application'","application.","approach","baseline,","boost","build","case,","class","cli","cli,","cobra","command","consist","convent","dedic","default","detail","didn't","differ","do.","entranc","experience.","expos","first","follow","framework","functionalities.","good","instead","interfac","line","make","micro","more","need","nirvana,","option","peopl","philosophi","practic","put","run","scratch","servic","small","specif","still","switch","system","therefor","todo:","unambigu","unix","us","veri","way","well.","you'll"],"topics/validation.html":["\"correspond","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"msg\",","$","''","'gt'","(checkout","./examples/get","/echo","0","0202","1","10","11:18:50.235+08",":)",":8080","[*/*]","[]definition.operator{validator.string(\"gt=10\")},","[]definition.parameter{","[text/plain]","abov","ad","add","advanc","allow","anoth","below","between","builder.go:163","builder.go:178","charact","characters,","code,","concept","consumes:","convert","convertor,","curl","custom","defin","definition.query,","definitions:","description:","descriptor:","differ","easili","echo","echo.go:67","enough","error:field","exampl","facts:","fail","framework","full","go","guid","hood,","info","input","input.","integr","key:","list","listen","longer","messag","method:","middlewares:","more","name:","new","nirvana","non","now","on","oper","operators.","operators:","package,","parameter\",","parameters:","path:","playground/validator.v9","pre","prevent","produces:","repli","request;","run","second","see","sens","server","sever","simpl","smoothli","source:","spam","started/validator/echo.go","such","support","tag","tags.","teach","terminal:","test","testtesttest","tire","two","under","us","usage.","user","valid","validation)","validation,","validation.","validator.","veri","verifi","version","want","works!","works:","{","|","},"],"topics/openapi.html":["!=","\"alice\",","\"apach","\"content","\"echo","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"message\":","\"nirvana\",","\"thi","\"v1.0.0\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","'{\"name\":","+caicloud:openapi=tru","./examples/get","//","/tmp/swagger.json","2.0\",",":=",">","\\","`json:\"message\"","`json:\"name\"","api","api.getopenapidefinitions,","application/json\"","build","builder.buildopenapispec(&echo,","built","code,","come","command,","complic","contact:","creat","curl","d","decid","defin","definitions:","description:","docs,","docs.","document","documentation.","easi","echo","encod","encoder.encode(swagger);","endpoint","enpoint.","err","exampl","example,","file.","finally,","first","follow","from.","full","gen","gener","getdefinitions:","github.com/caicloud/nirvana/examples/get","go","h","http://localhost:8080/echo","https://editor.swagger.io/,","i.e.","info:","infoprops:","it'","json.newencoder(os.stdout)","license,","license:","make","messag","message,","myself\"}'","name","name:","need","new","next","nil","nirvana","now","open","openapi","openapi\",","openapi.","p","packag","package:","panic(err)","post","provid","put","run","see","sent.","server","server\",","servic","spec.infoprops{","specification:","started/openapi/echo.go","started/openapi/pkg/api","step","string","struct","support","swagger,","swagger.json","title:","type","type:","upgrad","url:","user,","validate:\"gt=10\"`","validate:\"required\"`","version","version:","view","we'll","x","you'v","{","}","})","},"],"topics/metrics.html":["\"nirvana_request_latencies\"","#","$","'content","'http://localhost:8080/echo?msg=testtesttest'","(and","(apachebench)",")","./examples/get","/echo","/metric","0","1","100)","1000","1000,","2>&1","48533","53","8080).","89","90m.","98",":=","[0,","ab","actual","ad","add","alway","anoth","api","application/json'","around","author.","between","box","broken","checkout","client,","client.","code,","code.","complex","concept","config","config.","configur","configuration,","configuration:","configure(","contenttyp","counter","curl","default","depend","diagnos","disabled.","distribut","done","done,","each","enabl","endpoint.","exampl","example,","expos","format.","full","function","go","grep","guid","h","help","histogram","http","http://localhost:8080/metr","implement","individu","inform","instal","instrumentation.","it'","latenc","latencies.","let'","load;","mani","metric","metrics,","metrics.","metrics.path(\"/metrics\"),","microsecond","middlewares.","more","n","nirvana","nirvana.newdefaultconfig(\"\",","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","now","on","onc","others).","out","p90","plugin","plugin,","plugin.","prometheu","random","regist","request","resourc","resource,","resource.","respons","run","run:","see","seen","server","server,","servic","service!","service;","show","simpli","simul","sleep","start","started/metrics/echo.go","starts.","static","summari","support","tell","terminal,","therefore,","time","total.","type","type:","understand","us","user","verb","verb,","via","we'll","we'v","wealth","|"]},"length":45},"tokenStore":{"root":{"0":{"2":{"0":{"2":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}},"7":{"0":{"2":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292}}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.017361111111111112}},";":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"1":{"0":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.004433934377771209},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.04513888888888889}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"0":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}},":":{"1":{"8":{"docs":{},":":{"5":{"0":{"docs":{},".":{"2":{"3":{"5":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"6":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},".":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"5":{"docs":{},":":{"4":{"7":{"docs":{},":":{"5":{"2":{"docs":{},".":{"0":{"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"4":{"9":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"0":{"docs":{},":":{"5":{"4":{"docs":{},".":{"1":{"5":{"6":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"5":{"docs":{},".":{"6":{"0":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"6":{"docs":{},":":{"3":{"4":{"docs":{},":":{"3":{"8":{"docs":{},".":{"6":{"6":{"3":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.005911912503694945},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.034722222222222224}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"把":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},".":{"1":{"0":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{}},"9":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"2":{"0":{"0":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},"1":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0002955956251847473}}},"2":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"./":{"ref":"./","tf":0.0011823825007389892}}},"4":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"2":{"9":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"6":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"7":{"7":{"4":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"8":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"3":{"docs":{},".":{"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"3":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},">":{"docs":{},"&":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}}}},"3":{"0":{"0":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0014779781259237363}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"4":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"4":{"0":{"4":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"5":{"3":{"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}},"docs":{}},"docs":{}},"9":{"1":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"5":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"5":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"5":{"5":{"4":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"docs":{}},"docs":{}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"4":{"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"6":{"5":{"8":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"7":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"5":{"docs":{},".":{"1":{"0":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"7":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"8":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"9":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"6":{"docs":{},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"7":{"1":{"6":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"2":{"3":{"1":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.04849884526558892}}}},"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}},"docs":{}},"docs":{}},"3":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"2":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"8":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"8":{"0":{"8":{"0":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},")":{"docs":{},".":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"9":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"9":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"8":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"9":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"]":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.014484185634052616},"guides/project.html":{"ref":"guides/project.html","tf":0.035897435897435895},"guides/api.html":{"ref":"guides/api.html","tf":10.038535645472061},"guides/doc.html":{"ref":"guides/doc.html","tf":3.442708333333333},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/version.html":{"ref":"plugins/version.html","tf":0.05},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555},"topics/start.html":{"ref":"topics/start.html","tf":0.046875},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.033444816053511704},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.027472527472527},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},":":{"1":{"7":{"9":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"8":{"7":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"9":{"5":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"服":{"docs":{},"务":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"接":{"docs":{},"入":{"docs":{},"其":{"docs":{},"他":{"docs":{},"日":{"docs":{},"志":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"m":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"'":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},"'":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"e":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.026234567901234566}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"b":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"o":{"docs":{},"v":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}},"d":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"v":{"docs":{},"i":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"@":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{},"{":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},",":{"docs":{},"两":{"docs":{},"者":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":5.08235294117647},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}},":":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.009163464380727165},"guides/project.html":{"ref":"guides/project.html","tf":0.03076923076923077},"guides/api.html":{"ref":"guides/api.html","tf":0.025048169556840076},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.0380952380952381},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0392156862745098},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.03271028037383177},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0859375},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":10.02572347266881},"topics/config.html":{"ref":"topics/config.html","tf":0.021604938271604937},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.023255813953488372},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.16666666666666666},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.06896551724137931},"plugins/version.html":{"ref":"plugins/version.html","tf":0.15},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.08333333333333333},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"{":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"2":{"docs":{},".":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"2":{"0":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"服":{"docs":{},"务":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"./":{"ref":"./","tf":0.00325155187703222},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"y":{"docs":{},"@":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702}}},"s":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"w":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"e":{"docs":{},"w":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"4":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"2":{"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"3":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"5":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"与":{"docs":{},"其":{"docs":{},"他":{"docs":{},"普":{"docs":{},"通":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"此":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"和":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"都":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"侵":{"docs":{},"入":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"作":{"docs":{},"出":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"应":{"docs":{},"当":{"docs":{},"以":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"包":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"增":{"docs":{},"强":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"设":{"docs":{},"计":{"docs":{},"上":{"docs":{},"与":{"docs":{},"现":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"心":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"过":{"docs":{},"程":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"层":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"层":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"含":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"发":{"docs":{},"布":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"修":{"docs":{},"改":{"docs":{},"并":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"场":{"docs":{},"景":{"docs":{},"中":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"除":{"docs":{},"了":{"docs":{},"正":{"docs":{},"常":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"各":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"到":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},",":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"没":{"docs":{},"有":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"整":{"docs":{},"个":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"源":{"docs":{},"头":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"公":{"docs":{},"共":{"docs":{},"的":{"docs":{},"网":{"docs":{},"关":{"docs":{},"进":{"docs":{},"行":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"对":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"整":{"docs":{},"合":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"涵":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"过":{"docs":{},"程":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"导":{"docs":{},"致":{"docs":{},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"引":{"docs":{},"用":{"docs":{},"各":{"docs":{},"种":{"docs":{},"各":{"docs":{},"样":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"综":{"docs":{},"合":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{},"该":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"每":{"docs":{},"个":{"docs":{},"包":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"主":{"docs":{},"要":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"额":{"docs":{},"外":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"这":{"docs":{},"些":{"docs":{},"组":{"docs":{},"件":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"计":{"docs":{},"理":{"docs":{},"念":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"会":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"通":{"docs":{},"常":{"docs":{},"足":{"docs":{},"够":{"docs":{},"使":{"docs":{},"用":{"docs":{},"者":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"间":{"docs":{},"也":{"docs":{},"会":{"docs":{},"存":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"速":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"件":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"中":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"是":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"一":{"docs":{},"个":{"docs":{},"着":{"docs":{},"重":{"docs":{},"于":{"docs":{},"提":{"docs":{},"高":{"docs":{},"开":{"docs":{},"发":{"docs":{},"效":{"docs":{},"率":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}},"短":{"docs":{},"语":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"指":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"验":{"docs":{},"证":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"否":{"docs":{},"由":{"docs":{},"这":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"包":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"负":{"docs":{},"责":{"docs":{},"日":{"docs":{},"志":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"处":{"docs":{},"理":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}},"由":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"而":{"docs":{},"不":{"docs":{},"由":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"让":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{},"框":{"docs":{},"架":{"docs":{},"隔":{"docs":{},"离":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"处":{"docs":{},"于":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"设":{"docs":{},"计":{"docs":{},"核":{"docs":{},"心":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},":":{"docs":{},"隔":{"docs":{},"离":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"概":{"docs":{},"览":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"概":{"docs":{},"览":{"docs":{"./":{"ref":"./","tf":10}}},"念":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"各":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"也":{"docs":{},"是":{"docs":{},"依":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"和":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"该":{"docs":{},"请":{"docs":{},"求":{"docs":{},"还":{"docs":{},"是":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"数":{"docs":{},"据":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"包":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"忽":{"docs":{},"略":{"docs":{},"所":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"通":{"docs":{},"常":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"为":{"docs":{},"了":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"来":{"docs":{},"共":{"docs":{},"同":{"docs":{},"标":{"docs":{},"识":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"框":{"docs":{},"架":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{},"。":{"docs":{},"下":{"docs":{},"表":{"docs":{},"中":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"用":{"docs":{},"途":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"这":{"docs":{},"个":{"docs":{},"短":{"docs":{},"语":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}},"户":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"会":{"docs":{},"递":{"docs":{},"归":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"以":{"docs":{},"寻":{"docs":{},"找":{"docs":{},"带":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},",":{"docs":{},"与":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"字":{"docs":{},"段":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"调":{"docs":{},"换":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"工":{"docs":{},"具":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"注":{"docs":{},"册":{"docs":{},"方":{"docs":{},"法":{"docs":{},"即":{"docs":{},"可":{"docs":{},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"与":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"式":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"最":{"docs":{},"小":{"docs":{},"值":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"路":{"docs":{},"径":{"docs":{},"上":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"数":{"docs":{},"据":{"docs":{},"来":{"docs":{},"源":{"docs":{},"都":{"docs":{},"是":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"添":{"docs":{},"加":{"docs":{},"上":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"都":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"满":{"docs":{},"足":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"表":{"docs":{},"达":{"docs":{},"性":{"docs":{},"很":{"docs":{},"差":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"全":{"docs":{},"局":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"性":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"作":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"错":{"docs":{},"误":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"动":{"docs":{},"态":{"docs":{},"函":{"docs":{},"数":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"真":{"docs":{},"正":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"里":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"方":{"docs":{},"便":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"顶":{"docs":{},"级":{"docs":{},"包":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"其":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"包":{"docs":{},"只":{"docs":{},"来":{"docs":{},"自":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}},"填":{"docs":{},"充":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"除":{"docs":{},"了":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"述":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"把":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"docs":{}}},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0005911912503694946}}}},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"docs":{}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"n":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"\"":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"s":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"r":{"docs":{},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"h":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"i":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"#":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.12307692307692308},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.020833333333333332}}},"$":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.028205128205128206},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/start.html":{"ref":"topics/start.html","tf":0.03125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"g":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"/":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"{":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},".":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"1":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"docs":{}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.0380952380952381},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"*":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"/":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"/":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},":":{"docs":{},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"docs":{}}}}}}},"/":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.05009633911368015},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.09056603773584905},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.05952380952380952},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.047619047619047616},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.04938271604938271},"concepts/context.html":{"ref":"concepts/context.html","tf":0.09289617486338798},"concepts/source.html":{"ref":"concepts/source.html","tf":0.058823529411764705},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.09326424870466321},"concepts/error.html":{"ref":"concepts/error.html","tf":0.03139013452914798},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.0794392523364486},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.024464831804281346},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.04838709677419355},"topics/log.html":{"ref":"topics/log.html","tf":0.11611374407582939},"topics/errors.html":{"ref":"topics/errors.html","tf":0.10392609699769054},"topics/definition.html":{"ref":"topics/definition.html","tf":0.12545126353790614},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.10457516339869281},"topics/router.html":{"ref":"topics/router.html","tf":0.07508532423208192},"topics/service.html":{"ref":"topics/service.html","tf":0.08742514970059881},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.08681672025723473},"topics/config.html":{"ref":"topics/config.html","tf":0.10802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.07272727272727272},"topics/utils.html":{"ref":"topics/utils.html","tf":0.09810479375696766},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.02601241501625776},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"z":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"重":{"docs":{},"定":{"docs":{},"向":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"就":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"2":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"/":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}},"docs":{}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.10344827586206896},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"[":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}},"=":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422},"topics/definition.html":{"ref":"topics/definition.html","tf":0.026173285198555957},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0026603606266627253}},"=":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.018475750577367205},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"(":{"docs":{},"&":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},":":{"1":{"6":{"3":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"7":{"8":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"s":{"docs":{},"n":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}}},"y":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"l":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.03278688524590164},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"s":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"i":{"docs":{},"e":{"docs":{},"f":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"d":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/start.html":{"ref":"topics/start.html","tf":0.015625}}},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/command.html":{"ref":"topics/command.html","tf":10.004201680672269}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0023647650014779783}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05963302752293578},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},")":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":10.010928961748634},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}}},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"u":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"2":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},")":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.384009009009009},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.049019607843137254},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.06542056074766354},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":10.01388888888889},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0035471475022169673},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"a":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.14705882352941177},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01929260450160772},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.004138338752586462},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"b":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},":":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}},"d":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0026603606266627253}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"s":{"docs":{},".":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"i":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},"}":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}}},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"注":{"docs":{},"释":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"要":{"docs":{},"对":{"docs":{},"注":{"docs":{},"释":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"注":{"docs":{},"释":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"a":{"docs":{},"m":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.042483660130718956},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}}}}}}}}}}}}},"v":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":10.04054054054054}},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.027707808564231738},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168}},":":{"1":{"0":{"6":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}},"7":{"3":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"8":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"g":{"docs":{},"o":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"而":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.02287581699346405},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.037037037037037035},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0011823825007389892}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"./":{"ref":"./","tf":0.0005911912503694946}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"f":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"g":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},")":{"docs":{},"`":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.015414258188824663},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.12380952380952381},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/definition.html":{"ref":"topics/definition.html","tf":10.016245487364621},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"2":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"docs":{}},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"{":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"开":{"docs":{},"发":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"会":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"则":{"docs":{},"是":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/method.html":{"ref":"topics/method.html","tf":10}}}}}}}}},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.00325155187703222},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"=":{"docs":{},"{":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"(":{"docs":{},")":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"./":{"ref":"./","tf":0.00650310375406444},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0073898906296186815}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"然":{"docs":{},"后":{"docs":{},"动":{"docs":{},"态":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}},":":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.0029559562518474726}}}}},"i":{"docs":{},"d":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.010362694300518},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"a":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"o":{"docs":{},"c":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"s":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"n":{"docs":{},"e":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"'":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0029559562518474726},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"docs":{}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"a":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"b":{"docs":{},"e":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"r":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02702702702702703},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.0038427431274017146},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}},"o":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.07623318385650224},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":10.057736720554272},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.007685486254803429},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.013207547169811321},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"s":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"比":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"多":{"docs":{},"出":{"docs":{},"更":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05045871559633028},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.004729530002955957},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}},"o":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},"u":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},",":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"则":{"docs":{},"认":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"。":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"t":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"s":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.005025125628140704},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{},":":{"6":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"2":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}}}}},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":10.119047619047619},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0005911912503694946}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/utils.html":{"ref":"topics/utils.html","tf":0.020066889632107024},"./":{"ref":"./","tf":0.0011823825007389892}},"a":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.0002955956251847473}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"x":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0017735737511084836},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}}}}}},"o":{"docs":{},"m":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"k":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"u":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.020151133501259445},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.052830188679245285},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.037383177570093455},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0375},"topics/validator.html":{"ref":"topics/validator.html","tf":0.049019607843137254},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.02572347266881029},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.04},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"d":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"l":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},":":{"docs":{},".":{"docs":{},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"*":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.02771362586605081},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946}}},"。":{"docs":{},"也":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"类":{"docs":{},"表":{"docs":{},"示":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}},"s":{"docs":{},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"通":{"docs":{},"过":{"docs":{},"外":{"docs":{},"部":{"docs":{},"选":{"docs":{},"项":{"docs":{},"来":{"docs":{},"改":{"docs":{},"变":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"(":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{},"*":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},"f":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}},"l":{"docs":{},"n":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}}}}}}}}}}}}},")":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"(":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.010256410256410256},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.02185792349726776},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01818181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"得":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"1":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"u":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"2":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"2":{"0":{"4":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"(":{"2":{"0":{"0":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"请":{"docs":{},"求":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}},"。":{"docs":{},"如":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"您":{"docs":{},"明":{"docs":{},"确":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"l":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"`":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0017735737511084836}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.025906735751295335},"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.0880829015544045},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"这":{"docs":{},"些":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"同":{"docs":{},"等":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"闭":{"docs":{},"包":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"必":{"docs":{},"要":{"docs":{},"文":{"docs":{},"件":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{}},"3":{"2":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.01437125748502994},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{"./":{"ref":"./","tf":10}}}}}}}}},"f":{"docs":{},"o":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0026603606266627253},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"r":{"docs":{},"m":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"|":{"docs":{},"l":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"i":{"docs":{},"p":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"k":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"g":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":10.045023696682465},"./":{"ref":"./","tf":0.0014779781259237363}},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.023696682464454975}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"(":{"4":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"docs":{}}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.018957345971563982},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"l":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"输":{"docs":{},"出":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"k":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"w":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"a":{"docs":{},"d":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"k":{"docs":{},"e":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}},"e":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"会":{"docs":{},"写":{"docs":{},"入":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"]":{"docs":{},"*":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"h":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"3":{"2":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"docs":{}},"docs":{}}}}}}}}}},"n":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/error.html":{"ref":"concepts/error.html","tf":0.017937219730941704},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.004729530002955957},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01607717041800643},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0053207212533254505},"topics/metrics.html":{"ref":"topics/metrics.html","tf":10.03125}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}}},"d":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":10.024691358024691},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":10.095238095238095},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"e":{"docs":{},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"r":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693}},":":{"docs":{},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}}},"docs":{}}},"docs":{}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"l":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"2":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"s":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"k":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"p":{"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"k":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.03125},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}}}}}}}},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":10.095238095238095},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}},"启":{"docs":{},"用":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"名":{"docs":{},"称":{"docs":{},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.377252252252252},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0029559562518474726}},"e":{"docs":{},"(":{"docs":{},"w":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"他":{"docs":{},"们":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"和":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"s":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"x":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":5.011764705882353},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0073898906296186815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.002069169376293231}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"s":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}}}},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0026603606266627253}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"s":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0014779781259237363}}}},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"o":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"?":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"u":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/method.html":{"ref":"topics/method.html","tf":0.05660377358490566},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"a":{"docs":{},"y":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}},".":{"docs":{},"v":{"9":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"./":{"ref":"./","tf":0.007685486254803429},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.024305555555555556}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}},"e":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"判":{"docs":{},"断":{"docs":{},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},".":{"docs":{},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"`":{"docs":{},"^":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"o":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"r":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"q":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.03571428571428571},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.025454545454545455},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{},"可":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/rest.html":{"ref":"topics/rest.html","tf":10.018181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004433934377771209}},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.020754716981132074},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.04918032786885246},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.027544910179640718},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.032407407407407406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"l":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0023647650014779783},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":10.041666666666666}},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"=":{"docs":{},"\"":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},"\"":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":10.009580838323354},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":10}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"./":{"ref":"./","tf":0.0017735737511084836}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"n":{"docs":{},"s":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.016587677725118485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0026603606266627253}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"。":{"docs":{},"值":{"docs":{},"使":{"docs":{},"用":{"docs":{},"逗":{"docs":{},"号":{"docs":{},"分":{"docs":{},"隔":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"参":{"docs":{},"数":{"docs":{},"来":{"docs":{},"源":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"表":{"docs":{},"示":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"(":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"[":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},".":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.016339869281045753},"topics/router.html":{"ref":"topics/router.html","tf":0.034129692832764506},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.004729530002955957},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.026415094339622643},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.125},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},"/":{"docs":{},"[":{"docs":{},"]":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.014492753623188406},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"{":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"a":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},".":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"a":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"b":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"v":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673}},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"h":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},"w":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"m":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"n":{"docs":{},"i":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"u":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.008572273130357671},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"r":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"x":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"b":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"docs":{}},"3":{"2":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":10.002229654403568}}}}}},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.017948717948717947},"guides/client.html":{"ref":"guides/client.html","tf":0.022670025188916875},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"2":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"a":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.04150943396226415},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.1503267973856209},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.008276677505172924},"topics/validation.html":{"ref":"topics/validation.html","tf":10.040697674418604}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}},"docs":{}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"u":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/config.html":{"ref":"topics/config.html","tf":0.035493827160493825},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.005616316878510198}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"是":{"docs":{},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"a":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"│":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.11025641025641025},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.038461538461538464},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.04358974358974359},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}}}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"是":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"样":{"docs":{},"板":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"如":{"docs":{},"何":{"docs":{},"放":{"docs":{},"到":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"表":{"docs":{},"现":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"每":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"直":{"docs":{},"接":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"位":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"与":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}},"添":{"docs":{},"加":{"docs":{},"在":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}},"携":{"docs":{},"带":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"也":{"docs":{},"经":{"docs":{},"常":{"docs":{},"看":{"docs":{},"到":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"组":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"是":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"任":{"docs":{},"何":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"目":{"docs":{},"前":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"添":{"docs":{},"加":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"为":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"径":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"时":{"docs":{},"不":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},"包":{"docs":{},"含":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"实":{"docs":{},"例":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"传":{"docs":{},"递":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"的":{"docs":{},"公":{"docs":{},"开":{"docs":{},"字":{"docs":{},"段":{"docs":{},"根":{"docs":{},"据":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"规":{"docs":{},"则":{"docs":{},"参":{"docs":{},"考":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},")":{"docs":{},"从":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"印":{"docs":{},"表":{"docs":{},"格":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"为":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"所":{"docs":{},"有":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.047619047619047616}},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"演":{"docs":{},"示":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"构":{"docs":{},"建":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"端":{"docs":{},"口":{"docs":{},"是":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"设":{"docs":{},"置":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"读":{"docs":{},"取":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"从":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"显":{"docs":{},"得":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"上":{"docs":{},"所":{"docs":{},"有":{"docs":{},"节":{"docs":{},"点":{"docs":{},"按":{"docs":{},"照":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"串":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"并":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"上":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"由":{"docs":{},"命":{"docs":{},"令":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"修":{"docs":{},"改":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"前":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},",":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"时":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"非":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{},"里":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"安":{"docs":{},"装":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},"自":{"docs":{},"带":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"账":{"docs":{},"户":{"docs":{},"下":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"下":{"docs":{},"载":{"docs":{},"源":{"docs":{},"码":{"docs":{},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"开":{"docs":{},"发":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"会":{"docs":{},"打":{"docs":{},"印":{"docs":{},"出":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"用":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"或":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"双":{"docs":{},"重":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"即":{"docs":{},"请":{"docs":{},"求":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"结":{"docs":{},"束":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"示":{"docs":{},"源":{"docs":{},"地":{"docs":{},"址":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"向":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"启":{"docs":{},"动":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"编":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"单":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"包":{"docs":{},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.05405405405405406},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"一":{"docs":{},"个":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"插":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"是":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"配":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},",":{"docs":{},"为":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"如":{"docs":{},"果":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"命":{"docs":{},"令":{"docs":{},"扩":{"docs":{},"展":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"类":{"docs":{},"型":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}}},"以":{"docs":{},"下":{"docs":{},"路":{"docs":{},"径":{"docs":{},"都":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"正":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"希":{"docs":{},"望":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"读":{"docs":{},"取":{"docs":{},"到":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"下":{"docs":{},":":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"字":{"docs":{},"段":{"docs":{},"无":{"docs":{},"效":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"进":{"docs":{},"行":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"在":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"必":{"docs":{},"须":{"docs":{},"与":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"存":{"docs":{},"放":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.015384615384615385}},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"启":{"docs":{},"动":{"docs":{},"命":{"docs":{},"令":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"在":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"再":{"docs":{},"对":{"docs":{},"应":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"更":{"docs":{},"加":{"docs":{},"明":{"docs":{},"确":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"根":{"docs":{},"据":{"docs":{},"场":{"docs":{},"景":{"docs":{},"确":{"docs":{},"定":{"docs":{},"使":{"docs":{},"用":{"docs":{},"哪":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"的":{"docs":{},"可":{"docs":{},"读":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"无":{"docs":{},"关":{"docs":{},"性":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"不":{"docs":{},"能":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"任":{"docs":{},"何":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"上":{"docs":{},"添":{"docs":{},"加":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"之":{"docs":{},"后":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"在":{"docs":{},"容":{"docs":{},"器":{"docs":{},"内":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"打":{"docs":{},"包":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"看":{"docs":{},"到":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"无":{"docs":{},"效":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"错":{"docs":{},"误":{"docs":{},"能":{"docs":{},"够":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"或":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"域":{"docs":{},"名":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"与":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},"打":{"docs":{},"包":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"符":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"构":{"docs":{},"建":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"服":{"docs":{},"务":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"只":{"docs":{},"能":{"docs":{},"填":{"docs":{},"写":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"打":{"docs":{},"开":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"因":{"docs":{},"此":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"启":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"性":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"路":{"docs":{},"径":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"则":{"docs":{},"根":{"docs":{},"据":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"一":{"docs":{},"段":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"限":{"docs":{},"制":{"docs":{},":":{"docs":{},"只":{"docs":{},"能":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"确":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"此":{"docs":{},"时":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"每":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"服":{"docs":{},"务":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"份":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{},"在":{"docs":{},"一":{"docs":{},"起":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"内":{"docs":{},"容":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"互":{"docs":{},"相":{"docs":{},"之":{"docs":{},"间":{"docs":{},"不":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}},"比":{"docs":{},"如":{"docs":{},"设":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"命":{"docs":{},"令":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"演":{"docs":{},"示":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":10.025}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"规":{"docs":{},"则":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"识":{"docs":{},"别":{"docs":{},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"签":{"docs":{},"名":{"docs":{},"没":{"docs":{},"有":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"暴":{"docs":{},"露":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"服":{"docs":{},"务":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"常":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"合":{"docs":{},"并":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"真":{"docs":{},"正":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"分":{"docs":{},"析":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"表":{"docs":{},"示":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"前":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"还":{"docs":{},"不":{"docs":{},"完":{"docs":{},"善":{"docs":{},",":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"对":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"编":{"docs":{},"译":{"docs":{},"并":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"写":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"范":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}},"路":{"docs":{},"径":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"。":{"docs":{},"为":{"docs":{},"空":{"docs":{},"时":{"docs":{},"不":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"替":{"docs":{},"换":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"版":{"docs":{},"本":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"程":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"声":{"docs":{},"明":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"本":{"docs":{},"地":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"包":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"之":{"docs":{},"后":{"docs":{},"则":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},",":{"docs":{},"并":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.05714285714285714}},"字":{"docs":{},"段":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"替":{"docs":{},"换":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"空":{"docs":{},"格":{"docs":{},"后":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"这":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"是":{"docs":{},"有":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"工":{"docs":{},"具":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"判":{"docs":{},"断":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808}}}},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}},"插":{"docs":{},"件":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"三":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},":":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"包":{"docs":{},"方":{"docs":{},"便":{"docs":{},"了":{"docs":{},"用":{"docs":{},"户":{"docs":{},"创":{"docs":{},"建":{"docs":{},"能":{"docs":{},"够":{"docs":{},"被":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"分":{"docs":{},"离":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"对":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"用":{"docs":{},"特":{"docs":{},"例":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"快":{"docs":{},"速":{"docs":{},"进":{"docs":{},"行":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"添":{"docs":{},"加":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"以":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"就":{"docs":{},"表":{"docs":{},"示":{"docs":{},"文":{"docs":{},"档":{"docs":{},"生":{"docs":{},"成":{"docs":{},"成":{"docs":{},"功":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"够":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"都":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"套":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"器":{"docs":{},"机":{"docs":{},"制":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":10.009803921568627}}}}},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}},"镜":{"docs":{},"像":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"[":{"docs":{},":":{"docs":{},"模":{"docs":{},"块":{"docs":{},"名":{"docs":{},"]":{"docs":{},":":{"docs":{},"错":{"docs":{},"误":{"docs":{},"名":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"目":{"docs":{},"录":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":10.002564102564103}}}}}}}},"负":{"docs":{},"责":{"docs":{},"人":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"配":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"}":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"{":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"&":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.333333333333333}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"{":{"docs":{},"}":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"(":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}},"*":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"t":{"docs":{},"x":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"m":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},"docs":{}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"b":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},".":{"docs":{},"r":{"docs":{},".":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},":":{"8":{"0":{"8":{"0":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"=":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454},"./":{"ref":"./","tf":0.005616316878510198},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"[":{"0":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"5":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"f":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"docs":{}},"docs":{}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"docs":{}},"docs":{}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0011823825007389892}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"{":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"m":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0029559562518474726}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"*":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"i":{"docs":{},"d":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},"`":{"docs":{},"/":{"docs":{},"`":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}},"t":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/config.html":{"ref":"topics/config.html","tf":0.043209876543209874},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363}}},"y":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"k":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.018867924528301886},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.06735751295336788},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.02888086642599278},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.05},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.030716723549488054},"topics/service.html":{"ref":"topics/service.html","tf":0.03592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.046822742474916385},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.01300620750812888},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}}}}},":":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0008867868755542418}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"让":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"s":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"s":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"设":{"docs":{},"置":{"docs":{},"当":{"docs":{},"前":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"./":{"ref":"./","tf":0.0008867868755542418}},"r":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"d":{"docs":{},"o":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"w":{"docs":{},"o":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"b":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}},"r":{"docs":{},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"y":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.037815126050420166},"./":{"ref":"./","tf":0.015370972509606859},"topics/routes.html":{"ref":"topics/routes.html","tf":0.041666666666666664},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"}":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.017341040462427744},"guides/client.html":{"ref":"guides/client.html","tf":0.04534005037783375},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.04201680672268908},"./":{"ref":"./","tf":0.012415016257759386},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.05},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}},"与":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"名":{"docs":{},"称":{"docs":{},"无":{"docs":{},"关":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"类":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"任":{"docs":{},"何":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"件":{"docs":{},"事":{"docs":{},"情":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"上":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"外":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"十":{"docs":{},"分":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"设":{"docs":{},"置":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"取":{"docs":{},"得":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"中":{"docs":{},"确":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"使":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"始":{"docs":{},"终":{"docs":{},"建":{"docs":{},"议":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"这":{"docs":{},"样":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"时":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"等":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"呈":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"作":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{},"一":{"docs":{},"旦":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"即":{"docs":{},"使":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"发":{"docs":{},"生":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"加":{"docs":{},"载":{"docs":{},"时":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"例":{"docs":{},"值":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"意":{"docs":{},"义":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"值":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"放":{"docs":{},"到":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"放":{"docs":{},"置":{"docs":{},"到":{"docs":{},"全":{"docs":{},"局":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"成":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"删":{"docs":{},"除":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"参":{"docs":{},"数":{"docs":{},"值":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"当":{"docs":{},"前":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"定":{"docs":{},"义":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"考":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"既":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"里":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"通":{"docs":{},"过":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}},"构":{"docs":{},"建":{"docs":{},"带":{"docs":{},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"在":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"结":{"docs":{},"构":{"docs":{},"对":{"docs":{},"象":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"使":{"docs":{},"用":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"被":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"名":{"docs":{},"称":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"因":{"docs":{},"为":{"docs":{},"只":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"始":{"docs":{},"终":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"。":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"错":{"docs":{},"误":{"docs":{},"仅":{"docs":{},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"异":{"docs":{},"步":{"docs":{},"修":{"docs":{},"改":{"docs":{},"资":{"docs":{},"源":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"删":{"docs":{},"除":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"发":{"docs":{},"出":{"docs":{},"后":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"是":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"加":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"或":{"docs":{},"者":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"供":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"后":{"docs":{},"续":{"docs":{},"查":{"docs":{},"询":{"docs":{},"请":{"docs":{},"求":{"docs":{},"执":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"就":{"docs":{},"要":{"docs":{},"求":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"必":{"docs":{},"须":{"docs":{},"放":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"功":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"以":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"口":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"即":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"如":{"docs":{},"果":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"征":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"携":{"docs":{},"带":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"关":{"docs":{},"于":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"现":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"跟":{"docs":{},"踪":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},":":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"显":{"docs":{},"式":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"收":{"docs":{},"配":{"docs":{},"置":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"些":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"方":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"下":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"据":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"方":{"docs":{},"法":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"比":{"docs":{},"如":{"docs":{},"某":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"包":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":10.004587155963304}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"就":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"都":{"docs":{},"是":{"docs":{},"语":{"docs":{},"义":{"docs":{},"层":{"docs":{},"面":{"docs":{},"的":{"docs":{},",":{"docs":{},"为":{"docs":{},"的":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"得":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}},"一":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"二":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"对":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"直":{"docs":{},"接":{"docs":{},"创":{"docs":{},"建":{"docs":{},"出":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"安":{"docs":{},"装":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"验":{"docs":{},"证":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"种":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"插":{"docs":{},"件":{"docs":{},"允":{"docs":{},"许":{"docs":{},"插":{"docs":{},"件":{"docs":{},"设":{"docs":{},"置":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"无":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"时":{"docs":{},"候":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"不":{"docs":{},"能":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"多":{"docs":{},"个":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"资":{"docs":{},"源":{"docs":{},"唯":{"docs":{},"一":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"添":{"docs":{},"加":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353}},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"匹":{"docs":{},"配":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}},"到":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"类":{"docs":{},"型":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"名":{"docs":{},"称":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"一":{"docs":{},"般":{"docs":{},"不":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"被":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"变":{"docs":{},"成":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"组":{"docs":{},"合":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"具":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"列":{"docs":{},"表":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"里":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":10.023809523809524}},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"追":{"docs":{},"踪":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":10.016129032258064}},"基":{"docs":{},"于":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"返":{"docs":{},"回":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"自":{"docs":{},"动":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"的":{"docs":{},"是":{"docs":{},"资":{"docs":{},"源":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"回":{"docs":{},"去":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"是":{"docs":{},"否":{"docs":{},"健":{"docs":{},"康":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"出":{"docs":{},"去":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"描":{"docs":{},"述":{"docs":{},"的":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"决":{"docs":{},"定":{"docs":{},"请":{"docs":{},"求":{"docs":{},"是":{"docs":{},"否":{"docs":{},"继":{"docs":{},"续":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"提":{"docs":{},"供":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}},"任":{"docs":{},"何":{"docs":{},"更":{"docs":{},"新":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},"工":{"docs":{},"具":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"两":{"docs":{},"个":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"正":{"docs":{},"确":{"docs":{},"层":{"docs":{},"级":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"业":{"docs":{},"务":{"docs":{},"有":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"包":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"退":{"docs":{},"出":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"些":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}},"了":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"遵":{"docs":{},"守":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"里":{"docs":{},"取":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"的":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"文":{"docs":{},"本":{"docs":{},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"链":{"docs":{},"接":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":10.004484304932735}}}}},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"在":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"生":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"四":{"docs":{},"个":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"了":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"路":{"docs":{},"径":{"docs":{},"为":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.0054945054945055}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":10.030188679245283},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01444043321299639},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":10}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":10},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0014779781259237363}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"(":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}},"。":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/config.html":{"ref":"topics/config.html","tf":0.020061728395061727},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"m":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.016981132075471698},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"o":{"docs":{},"f":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"v":{"2":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"docs":{}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}}}},"docs":{}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"s":{"docs":{},")":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"|":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"公":{"docs":{},"开":{"docs":{},"给":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}},"共":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"构":{"docs":{},"建":{"docs":{},",":{"docs":{},"而":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"查":{"docs":{},"看":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"成":{"docs":{},"为":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"且":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"一":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"从":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{},"之":{"docs":{},"前":{"docs":{},"让":{"docs":{},"用":{"docs":{},"户":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"而":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"生":{"docs":{},"成":{"docs":{},"服":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"一":{"docs":{},"些":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"交":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"代":{"docs":{},"码":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":10.002518891687657},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"是":{"docs":{},"版":{"docs":{},"本":{"docs":{},"化":{"docs":{},"的":{"docs":{},",":{"docs":{},"版":{"docs":{},"本":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"两":{"docs":{},"者":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"新":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},",":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"器":{"docs":{},"这":{"docs":{},"个":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"特":{"docs":{},"定":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"而":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"读":{"docs":{},"基":{"docs":{},"本":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"则":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"效":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"对":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"端":{"docs":{},"口":{"docs":{},"提":{"docs":{},"供":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"防":{"docs":{},"止":{"docs":{},"端":{"docs":{},"口":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"名":{"docs":{},"称":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"该":{"docs":{},"命":{"docs":{},"令":{"docs":{},"不":{"docs":{},"会":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"输":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"日":{"docs":{},"志":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"会":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"!":{"docs":{},"=":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0014779781259237363},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.03536977491961415},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}}}}}}}}}},"v":{"1":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}},"/":{"docs":{},"*":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},".":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"范":{"docs":{},"例":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"比":{"docs":{},"较":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"来":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":10.003058103975535}},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"尚":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},")":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"指":{"docs":{},"定":{"docs":{},"其":{"docs":{},"他":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"良":{"docs":{},"好":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"以":{"docs":{},"供":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"限":{"docs":{},"制":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"x":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"m":{"docs":{},"l":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"取":{"docs":{},"得":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"会":{"docs":{},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"框":{"docs":{},"架":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"在":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"就":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"这":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"还":{"docs":{},"有":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"些":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"私":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"插":{"docs":{},"件":{"docs":{},"应":{"docs":{},"该":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"件":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"则":{"docs":{},"负":{"docs":{},"责":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"转":{"docs":{},"换":{"docs":{},"等":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"更":{"docs":{},"加":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"化":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"被":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"由":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"注":{"docs":{},"册":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"包":{"docs":{},"装":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"一":{"docs":{},"组":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"个":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"用":{"docs":{},"于":{"docs":{},"校":{"docs":{},"验":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"方":{"docs":{},"法":{"docs":{},"注":{"docs":{},"册":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"进":{"docs":{},"行":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"包":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"是":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"插":{"docs":{},"件":{"docs":{},"能":{"docs":{},"力":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}},"括":{"docs":{},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"占":{"docs":{},"位":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"值":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"对":{"docs":{},"应":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"分":{"docs":{},"离":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"基":{"docs":{},"础":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"共":{"docs":{},"工":{"docs":{},"具":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{},"采":{"docs":{},"集":{"docs":{},"端":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"包":{"docs":{},"含":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"多":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"基":{"docs":{},"于":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"际":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"如":{"docs":{},"下":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"的":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"之":{"docs":{},"所":{"docs":{},"以":{"docs":{},"不":{"docs":{},"复":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"类":{"docs":{},"型":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"稍":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"包":{"docs":{},"含":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"进":{"docs":{},"行":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"路":{"docs":{},"由":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"和":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"其":{"docs":{},"他":{"docs":{},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"的":{"docs":{},"包":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"借":{"docs":{},"助":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}},"会":{"docs":{},"从":{"docs":{},"以":{"docs":{},"下":{"docs":{},"文":{"docs":{},"件":{"docs":{},"列":{"docs":{},"表":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"包":{"docs":{},"都":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"简":{"docs":{},"单":{"docs":{},"很":{"docs":{},"多":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"里":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"去":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"名":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"际":{"docs":{},"上":{"docs":{},"要":{"docs":{},"填":{"docs":{},"写":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"只":{"docs":{},"与":{"docs":{},"自":{"docs":{},"身":{"docs":{},"业":{"docs":{},"务":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"例":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"将":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"它":{"docs":{},"的":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"写":{"docs":{},"入":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"找":{"docs":{},"到":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"才":{"docs":{},"算":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},":":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"包":{"docs":{},"里":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"户":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"上":{"docs":{},"每":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"都":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"注":{"docs":{},"册":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"空":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"身":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"快":{"docs":{},"速":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"过":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},"指":{"docs":{},"定":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"常":{"docs":{},"规":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{},"签":{"docs":{},"名":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"尾":{"docs":{},"部":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"收":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"用":{"docs":{},"于":{"docs":{},"单":{"docs":{},"独":{"docs":{},"配":{"docs":{},"置":{"docs":{},"每":{"docs":{},"一":{"docs":{},"项":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}},"首":{"docs":{},"部":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"看":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"本":{"docs":{},"身":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"确":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"处":{"docs":{},"理":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"启":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"将":{"docs":{},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"用":{"docs":{},"于":{"docs":{},"接":{"docs":{},"收":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"(":{"docs":{},"都":{"docs":{},"是":{"docs":{},"指":{"docs":{},"针":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"值":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"下":{"docs":{},"查":{"docs":{},"看":{"docs":{},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}},"面":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"来":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"一":{"docs":{},"些":{"docs":{},"附":{"docs":{},"加":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},">":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"且":{"docs":{},"成":{"docs":{},"功":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"按":{"docs":{},"照":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{},"链":{"docs":{},"继":{"docs":{},"续":{"docs":{},"传":{"docs":{},"递":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"经":{"docs":{},"由":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"去":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"才":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"而":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}},"负":{"docs":{},"责":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"大":{"docs":{},"致":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},"并":{"docs":{},"不":{"docs":{},"足":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},"繁":{"docs":{},"复":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}},"视":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"大":{"docs":{},"类":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"带":{"docs":{},"有":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"资":{"docs":{},"源":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"或":{"docs":{},"者":{"docs":{},"找":{"docs":{},"不":{"docs":{},"到":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"大":{"docs":{},"类":{"docs":{},"下":{"docs":{},"定":{"docs":{},"义":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"他":{"docs":{},"与":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"具":{"docs":{},"体":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"证":{"docs":{},"书":{"docs":{},"和":{"docs":{},"密":{"docs":{},"钥":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"机":{"docs":{},"制":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":10.004672897196262}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"整":{"docs":{},"合":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"区":{"docs":{},"别":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"统":{"docs":{},"一":{"docs":{},"网":{"docs":{},"关":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"暴":{"docs":{},"露":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"模":{"docs":{},"式":{"docs":{},"后":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":10.014492753623188}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"伪":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"按":{"docs":{},"照":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}},"列":{"docs":{},"包":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"包":{"docs":{},"含":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"上":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"打":{"docs":{},"印":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"。":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"提":{"docs":{},"取":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"监":{"docs":{},"控":{"docs":{},"指":{"docs":{},"标":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":10.027027027027026}},"基":{"docs":{},"于":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"采":{"docs":{},"集":{"docs":{},"指":{"docs":{},"标":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"的":{"docs":{},"提":{"docs":{},"取":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"前":{"docs":{},"缀":{"docs":{},"路":{"docs":{},"径":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}},"性":{"docs":{},"能":{"docs":{},"分":{"docs":{},"析":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":10.03448275862069}},"添":{"docs":{},"加":{"docs":{},"与":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"值":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}}}}}}}},"健":{"docs":{},"康":{"docs":{},"检":{"docs":{},"查":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":10.027777777777779}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}},"应":{"docs":{},"该":{"docs":{},"返":{"docs":{},"回":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":10.0078125}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"从":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"增":{"docs":{},"加":{"docs":{},"相":{"docs":{},"应":{"docs":{},"字":{"docs":{},"段":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"应":{"docs":{},"该":{"docs":{},"使":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"另":{"docs":{},"外":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"大":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{},"即":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"字":{"docs":{},"段":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"具":{"docs":{},"介":{"docs":{},"绍":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"持":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"变":{"docs":{},"更":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"标":{"docs":{},"准":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"识":{"docs":{},"别":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"中":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"引":{"docs":{},"入":{"docs":{},"对":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"容":{"docs":{},"器":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"和":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"验":{"docs":{},"证":{"docs":{},"方":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"这":{"docs":{},"些":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"z":{"docs":{},"]":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"*":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"正":{"docs":{},"则":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"余":{"docs":{},"路":{"docs":{},"径":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"完":{"docs":{},"成":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"也":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"就":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"掉":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"↑":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293}}},"↓":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497}}},"处":{"docs":{},"理":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"等":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"还":{"docs":{},"会":{"docs":{},"将":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"针":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"是":{"docs":{},"针":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"p":{"docs":{},"'":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}},"g":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"了":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"于":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"要":{"docs":{},"求":{"docs":{},"每":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"用":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}},"\\":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"t":{"docs":{},"]":{"docs":{},"*":{"docs":{},"=":{"docs":{},"(":{"docs":{},".":{"docs":{},"*":{"docs":{},")":{"docs":{},"$":{"docs":{},"`":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"\\":{"docs":{},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"反":{"docs":{},"序":{"docs":{},"列":{"docs":{},"化":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"可":{"docs":{},"读":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"。":{"docs":{},"两":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"上":{"docs":{},"述":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"%":{"docs":{},"s":{"docs":{},":":{"docs":{},"%":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"o":{"docs":{},"u":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"length":6914},"corpusTokens":["!=","\"\"","\"\",","\"${customer}","\"${name}","\"${user}","\"*/*\"","\"*/*\".","\"/\",","\"/api\",","\"/api/v1\",","\"/api/v1/some\".","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"/apis/v1/someapi\"","\"/child\",","\"/echo\",","\"/messages\",","\"/messages/{message}\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"accept\"","\"accept\".","\"alias\"","\"alice\",","\"apach","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"boilerplate\",","\"build","\"clientset/svca\"","\"clientset/svcb\"","\"content","\"context\"","\"context\",","\"converter\"","\"converter\"}","\"correspond","\"count\",","\"creat","\"create\"","\"custom\"","\"data\"","\"debian:jessie\",","\"delete\"","\"descriptors\"","\"docker","\"echo","\"error","\"error\"","\"exampl","\"fatal\"","\"file\"","\"first","\"form\"","\"get","\"get\"","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"github.com/caicloud/nirvana/rest\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"header\"","\"hello","\"here","\"http\"","\"http\",","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https\".","\"https://gonirvana.io\",","\"imag","\"info\"","\"init","\"list","\"list\"","\"listmessages\"),","\"localhost:8080\",","\"messag","\"message\":","\"meta\"","\"method","\"methodname\")","\"modifiers\"","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"myproject/client/v1\"","\"nirvana","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"number","\"openapi","\"origin\"","\"patch\"","\"path","\"path\"","\"pluginname\"","\"prefab\"","\"queri","\"query\"","\"registries\",","\"result","\"runtim","\"second","\"source\".","\"source,name\".","\"struct\"","\"text/plain\"","\"there","\"thi","\"update\"","\"v0.1.0\",","\"v1.0.0\",","\"valid","\"validator\"","\"validator\"}","\"var\"","\"version\",","\"warn\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/clientset","$gopath/src/myproject","$gopath/src/svca","$gopath/src/svcb","$path","${customer})","${id}\")","${name}","%s:%d\",","&&","&clientset{}","&client{","&client{client},","&client{}","&cobra.command{","&common.config{","&container{title,","&container{}","&initoptions{}","&message{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'content","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'myconfig.name.firstname'.","'nirvana.ip'","'{\"name\":","(","(*api.definitions,","(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(*client,","(*container)(nil)","(*definitions,","(*http.response,","(*message,","(*spec.swagger,","(*types.package,","([]message,","([]string,","(a","(ac","(against","(and","(anytype,","(apachebench)","(b","(bool,","(builder","(c","(checkout","(ctx","(e.g.","(executor,","(exported)","(from","(goon","(i","(in","(includ","(interface,","(interface{},","(m","(messag","(message1","(multipart.file,","(o","(or","(pem","(r","(reader","(response,","(service,","(string,","(types.object,","(uint,","(unexported)","(w.r.t","(with",")","*","*/*","*/*。","*analyz","*analyzer)","*api.message)","*apibuild","*apibuilder)","*ast.commentgroup","*body)","*client","*client)","*clientset)","*cobra.command","*cobra.command)","*cobra.command,","*comment","*config","*config)","*contain","*container)","*converterforanobject)","*definition.definition)","*http.request","*http.request)","*initoptions)","*int,","*map[string]string)","*message,","*message.contain","*nirvana.config)","*pflag.flagset)","*plugininstaller)","*regexp.regexp","*request","*request)","*rest.client","*rest.config)","*string).","*v1.client","*validatorforanobject)","+caicloud:openapi=tru","+nirvana:api=option:\"value\"。","+nirvana:openapi=tru",".",".*:","...","...configurer)","...customoption)","...definition.descriptor)","...filter)","...interface{})","...plugin)","...service.definitionmodifier)","...service.filter)","...string)","../clientset/svca","../clientset/svcb","./","./bin/myproject","./build/myproject/dockerfil","./client","./client.go","./config/","./examples/get","./myproject","./v1/client.go","./v1/types.go","/","//","/apis/v1","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/resourc","/apis/v1/resources/{resource}","/apis/v1/{regexp:[a","/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","/echo","/echo,","/echo[?msg=]","/etc/nirvana/","/go/package/to/your/generated/funct","/go/package/to/your/typ","/healthz","/healthz。","/home/go/src/myproject","/metric","/path","/path/path2","/path/path2/oth","/path/to/project\",","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","/version","/version。","/。","/,如果存在就重定向到没有","/,如果没有就加上","0","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0.","0202","0702","0;","1","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","1.","1.10.x","1.9.x","10","10)","10,","100","100)","1000","1000,","101","101\",\"data\":{\"id\":\"101\"}}","11","11.2","11.3","11.4","11.5","11:18:50.235+08","126","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","16:34:38.663+08","1:","1,并且把","2","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","2.","2.0","2.0\",","2.3.3","200","200,","201","202","204","2295,","260","2774,","28","2:","2>&1","3","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","3.","3.1","3.2","300","4","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","4.","4.2","4.4","404","41","48533","4918,","5","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","5.","500","500,","50554","507","53","55","5842,","6","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","6.","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","7.2","7168,","7231,","7232,","7233,","7235,","73","7725,","8","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","8.1","8080","8080).","8080:8080","8080。","89","9\",\"content\":\"method","9\"}]","90","90m.","98","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[5,","[]*ast.commentgroup","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","[]consumer,","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.middleware{somemiddleware},","[]def.operator{","[]def.parameter{","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{newcustom(f,\"custom","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.parameter{},","[]definition.result{","[]descriptor","[]exampl","[]filter","[]funcfield","[]index","[]int","[]message,","[]middlewar","[]oper","[]paramet","[]producer,","[]result","[]string","[]string)","[]string.","[]string{\"text/plain\"},","[]string{commentsoptiondescriptors,","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[]string{},","[]structfield","[text/plain]","[{\"id\":0,\"title\":\"method","\\","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","`","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`converter`.","`default`","`desc:\"debug","`desc:\"desc","`desc:\"log","`desc:\"nirvana","`desc:\"overrid","`desc:\"tl","`desc`","`desc`).","`json:\"content\"`","`json:\"id\"`","`json:\"message\"","`json:\"name\"","`json:\"title\"`","`key`","`name`","`pointer`","`source:\"header,cont","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source:\"query,start\"`","`source:\"query,start,default=100\"`","`source`","`source`.","`validator`.","a.","ab","abov","above.","above:","accept","accept:","accepttypeal","access","account}/nirvana.git","actions.","activ","actual","ad","add","add(point","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","addhook(hook","addit","addmodifi","addmodifier(modifi","addopt","addoption(prefix","adopt","advanc","aforement","after(ctx","ag","age\"`","agenthostport","aim","alias.","allow","altern","alway","analyz","analyzeranalyz","ananlyzer.","anonym","anoth","anotherautostruct","anyth","anytyp","anytype)","api","api\",","api.getopenapidefinitions,","api.go","api.go:179","api.go:87","api.go:95","api.register(root)","apibuild","apis.","api。","api。api","api,并且允许用户接入其他日志系统。","api,用于取得服务运行时信息。","api,用于生成","api,用于获取一条消息:","appear","append","applic","application'","application.","application/json","application/json\"","application/json'","application/octet","application/x","application/xml","approach","arg","args);","argument","around","array","array\",","array,","associ","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","automat","avoid","b.","back","badgateway","badrequest","base","baseline,","basic","basics.","befor","before(ctx","before.","behavior","behavior,","behavior.","below","best","between","bin","bind","bit","block","bodi","body()","body(contenttyp","body,","body.","body.nam","body.name)","body,但是","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","boilerpl","boilerplate\")","bool","bool(tag","bool)","bool):","bool,","bool.","boost","box","brief","broken","browser","build","build()","build(reason","builder","builder()","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","builder,factori","builder:","buildimag","built","busniess","by:","byte","byte(tag","bytes.","c","c,","c.rest.request(\"get\",","c.set(externalconfigname,","c.svca","c.svca,","c.svcb","c.svcb,","c.v1","c.v1,","caicloud.","call","called.","can't","capabl","care","careful,","carri","case","case,","cases,","categori","category()","categorycustom","categorystruct","categoryvar","cd","cert","certain","certif","cfg","cfg)`","chain","chain)","chain.continue()","chang","char","charact","characters,","characters.","check","checker","checker(check","checkout","child","children","children:","children;","class","clean","cleaner","cleaner.","clearer","cli","cli,","cli.svca().v1().listmessages(context.background(),","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","client.register(root)","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","client。而","client,用于生成","clone","clone(wrapp","cmd","cmd/nirvana","cobra","code","code()","code,","code.","collect","comamnd","combin","combination.","come","comma","command","command(cfg","command,","command.","commands.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","commit","common","complet","complex","complic","concept","concret","conet","config","config(nam","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.json","config.port())","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","configuration,","configuration:","configure(","configure(cfg","configure(configur","configurers.","configurers:","configurer:","config:","conflict","connections.","consist","const","consum","consume(r","consume.","consumeallifconsumesisempti","consumenoneforhttpget","consumers:","consumer,converter,prefab","consumer,即允许请求体为空。","consumer:","consumes.","consumes:","contact:","contacts:","contain","container.","containercontain","container:","content","content\"))","content\",","content\"}","content.","content:","contention(en","contentlength","contentlength()","contenttyp","contenttype()","content}","context","context,","context.","context.context","context.context)","context.context,","context.context。","contexthttpcontext","contextprefab","contextprefab。请参考","contextu","context。http","context。在这种场景下,如果每个","continu","continue(context.context)","continue):","contribut","contriv","conveni","convent","convention,","convert","converter.","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","convertor,","core","core,","correct\")","correct\",","correspond","count","count)","count).","counter","cover","cpu","creat","create:","create)。","creation,","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","customopt","customtracer(trac","d","data","data\"","data\".","data(&messages).","data(message1).","data(valu","data.","data,然后","db","deal","debian:jessi","debug","decid","declar","dedic","def.dataerrorresults(\"a","def.definition.","def.definition{","def.descriptor{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.prefab,","def.query,","default","default()","default,","default:","default={value}","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","defaulttracer(servicenam","defaultvalu","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor","definition.descriptor.","definition.descriptor{","definition.destin","definition.error,","definition.error。","definition.funct","definition.get,","definition.method","definition.middlewar","definition.oper","definition.operatorfunc(operatorkind,","definition.paramet","definition.produc","definition.query,","definition.sourc","definition.typ","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definition/method","definition:","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definitions:","definition。在我们实际开发过程中,经常会要求","definition。请求过滤器则是在","definition此处的","delet","dep","depend","dep:https://github.com/golang/dep","deriv","derived(","desc","descid","describ","descript","description\")}","description\",","description()","description(descript","description:","descriptions.","descriptor","descriptor'","descriptor(descriptor","descriptor,","descriptor.","descriptor:","descriptors.","descriptors.go","descriptor。","descriptor。然后动态生成一个","descriptor:","design","destin","destination()","destination:","destinationhandl","destinationhandler)","destinationhandlerdestinationhandl","destination:meta,data,error。","detail","details,","develop","developmenet","diagnos","didn't","differ","direct","directli","directori","disabl","disable()","disabled.","discouraged.","distinguish","distribut","divid","do(ctx","do(ctx)","do(req","do.","doc","doc.","doc.go","dockefile),还有一个","docker","dockerfil","docs,","docs.","doctoc","document","documentation.","documentations,","don't","done","done,","doublelog(en","down","draft","dri","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","elem","element","email:","embed","empti","empty,","enabl","enabled\"`","enableplugin","enableplugin(plugin","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","entranc","entry.","env","env,","equal","err","error","error()","error(...interface{})","error(format","error(v","error)","error)。其中参数的","error,","error.","error:field","errorf","errorf(string,","errorln","errorln(...interface{})","errorproduc","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"myproject:message:messagenotexist\",","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","errors:","error。","error。其中","error。创建","error,但是第一种方法比第二种多出更多特性:","errros.","etc","etc.","etc;","even","everyth","ex.","exact","exampl","example\",","example\",\"content\":\"exampl","example):","example,","example.","example.ag","example.firstnam","example:","example_ag","example_first_nam","except","exec","execut","execute(context.context)","execute(descriptor","execute.","executed.","executewithconfig","executewithconfig(cfg","executing.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exist","exists,","exit","exp","exp:","expectationfail","experience.","expired.","expos","expression.","extend","extens","extern","externalconfignam","extract","f","f(context.context,","f)","f.","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","facts:","fail","faileddepend","fals","false,","false.","fast","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","featur","few","field","field,","field.","fielda.","fieldb.","fields,","fields.","fieldtype)","file","file(key","file(nam","file)","file,","file.","file。","fill","fillleadingslash","filter","filter(filt","filtered.","filters()","filters.","filters.go","filter。","final","finally,","find","findpackag","findpackages(target","finish","first","first.","firstcontextparamet","firstnam","fix","flag","flag,","flags,","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","flags/env/config","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","flag。","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float*,","float32","float32.","float64","float64((time.since(starttime))","float64.","flow","fmt.print;","fmt.printf;","fmt.println;","follow","for(f","forbidden","fork","form","form(key","form(nam","format","format)","format.","format:","formats)","formatt","format,比如","found\")","found\",","found\")。","four","framework","framework!","framework:","frequent","from.","full","fullmatch:.*","fullmatchregexpnod","func","func()","func(c","func(cmd","func(context.context,","func(ctx","func(d","func(resp","func.","funcfield","function","function.","function:","functionalities.","functions.","functions:","funtion","future.","gatewaytimeout","gen","gen.","gener","generate()","generate(ctx","generation,","generator.","generators/golang","generators/swagg","generators/util","generator。这些","generator:","get","get()","get(inst","get(key","get(typin","get/list","get/sav","get____","getbool","getbool(key","getdefinitions:","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","gethttpclient(req),","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getmessag","getmessage(ctx","getopenapidefinit","getopenapidefinitions.","getopenapideinit","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","get。","get,两者没有区别。","git","git@github.com:{your","github","github.com/caicloud/","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/definition/method","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","github.com/caicloud/nirvana/plugins/healthcheck","github.com/caicloud/nirvana/plugins/logg","github.com/caicloud/nirvana/plugins/metr","github.com/caicloud/nirvana/plugins/profil","github.com/caicloud/nirvana/plugins/reqlog","github.com/caicloud/nirvana/plugins/trac","github.com/caicloud/nirvana/servic","github.com/go","github.com/golang/dep/cmd/dep","github.com/spf13/cobra","github.com/spf13/vip","githuh","given","glance,","global","glog","glog.","go","go.","goal","goe","golang","golang/dep","golang:latest","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","gone","good","goon,用来确定是否需要执行下一个","gopkg.in/go","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","gracefulli","grep","guid","h","handl","handle(ctx","handle.","handler","handler(request","handler.","handlers.","handler。","handler。这些","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","handler:","happen","hash","hash(hash","header","header(key","header(nam","header.","headers:","headerwrit","headerwritable()","healthcheck","healthchecker)","help","help`,","helper","here","high","higher","highest","highprior","histogram","hold","hood,","hook","hook()","hook)","hook.","host","host:","host:port","hosts:","http","http.defaultcli","http.handler","http.handler,用来处理请求。","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.responsewrit","http.responsewriter,","http.responsewriter.","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","http://127.0.0.1:8081","http://host:port/metrics.","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","http://localhost:8080/apis/v1/messages/101,即可得到一个","http://localhost:8080/apis/v1/messages:","http://localhost:8080/echo","http://localhost:8080/metr","httpcode","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","httpctx","httpctx.request()","httpctx.responsewriter()","httpmethod","https\"`","https.","https://editor.swagger.io/,","httpversionnotsupport","i)","i.e.","id","id\"),","id\",","id,","id.","id/nam","id:","idea","ident","identifi","id,也就是","ifac","ignor","ignored.","imag","image\",","imageprefix","imagesuffix","immedi","immediately.","impact","implement","implementation,","implementation.","implemented:","import","import(path","improv","in()","includ","include:","incom","increas","index","indic","individu","info","info(...interface{})","info(f|ln)","info,","info.","info:","infof","infof(string,","infoln","infoln(...interface{})","infoln.","infoprops:","inform","information.","inherit","init","init()","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","inject","input","input(","input,","input.","insensit","insid","inspect","inspect(context.context)","inspector","inspector:","instal","install(build","install(flag","install/initi","instanc","instance)","instance.","instead","instead,","insterface{})","instrument","instrumentation.","insufficientstorag","int","int(tag","int)","int*,","int,","int.","int16","int16(tag","int32","int32(tag","int32.","int64","int64(tag","int64.","int8","int8(tag","integr","intercept","interfac","interface,","interface.","interface:","interface{}","interface{})","interface{},","intern","internalservererror","interrupt","introduc","introduct","invalid","io.read","io.readclos","io.readcloser,","io.reader,","io.writer,","ip","ip\"`","ip()","ip(ip","ip.","is,","is:","isset","isset(key","it!","it'","it.","it:","itself).","itself.","json","json.marsh","json.newencoder(os.stdout)","json.unmarsh","keep","key","key,","key.","key/valu","key:","keyfil","keyword.","key,默认为","kickoff","kind","kind()","kind.","knob","know","language:","larger","last","lasterrorresult","latenc","latencies.","layout","length","lengthrequir","let'","level","level,","level.","leveldebug","leveldebug)","levels.","librari","license,","license:","lifecycle.","line","list","listen","listen.","listmessag","listmessages(ctx","load;","localhost:8080","locat","locations.","lock","locked()","locked.","log","log.","log.fatal(err)","log.fatalln(err)","log.info(msgs)","log.infof(\"listen","log.logg","log.logger)","log.v(4).info","logger","logger\"`","logger()","logger(l","logger(logg","logger.","logger。","logger,使用的是","logger,用于输出错误。","logic","logo","logs\"`","logs,","logs.","long:","longer","look","loopdetect","lot","lower","lowprior","main","main()","main.go","maintain","make","make([]message,","make(ctx","makefil","makefile,只需要使用简单的","management,","mani","manner","map","map,","map.","map[string][]definit","map[string][]definition.definit","map[string][]definition.middlewar","map[string][]str","map[string]str","map[string]string,会写入","map[typename]*typ","mappings.","marshal","match","match.","matching.","math.maxint32","mean","mechan","mediumprior","mention","messag","message\"),","message\",","message()","message).","message,","message.","message.getmessage,","message.go","message.listmessages,","message1","messagenotexist","messagenotexist.error(id)","messages\"),","messages\",","messages.","meta","meta(valu","method","method)","method,","method.","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","methodnotallow","methods,","methods.","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","micro","microsecond","middlewaar","middlewar","middlewares()","middlewares.","middlewares.go","middlewares:","middlewares,definitions,children","millisecond","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","missing.","mkdir","mode.","modif","modifi","modifier()","modifier(modifi","modifier.","modifiers.","modifiers.go","modifiers。","modifier。","moditi","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","msgs,","multipart/form","multipl","mustnewcli","mustnewclient(cfg","mustnewclientset","mustnewclientset(cfg","myproject","myproject/cli","myproject:v0.1.0","myself\"}'","n","name","name!\")","name\"),","name\"`","name()","name(nam","name,","name.","name:","names.","namespac","namespace(n","namespace.","namespace:","namespaces.","natur","necessary,","need","need.","neg","nest","net/http/pprof","net/http/pprof.","networkauthenticationrequir","new","new(message)","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newclient","newclient(cfg","newclient(cfg)","newclientset","newclientset(cfg","newclientset(cfg)","newcontain","newcontainer()","newcontainer(root","newcontainer(title,","newcustom","newcustom(f","newinitcommand","newinitcommand()","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","newlin","newmetricsmiddleware(namespac","newserv","newserver(c","newsimpleserializer(contenttype)","next","next.continue(ctx)","nil","nil)","nil,","nil.","nil。如果服务异常,则返回相应的错误。","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.json","nirvana.newdefaultconfig(\"\",","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana.toml","nirvana.yaml","nirvana.yaml。","nirvana:","nirvana_ip).","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","nobodi","nobody@nobody.io","node.","node:","nodes:","non","notaccept","note","notextend","notfound","noth","nothing)","notice:","notimpl","now","number","obey","object","object,","object.","objectof","objectof(pkg,","objv2,","obtain","occur","occurs,","occurs.","offset","ok","ok,","on","on,","on.","onc","once.","one,","one.","opeartor","open","openapi","openapi\",","openapi()","openapi,","openapi.","openapi/spec","opentrac","opentracing.span)","opentracing.tracer)","oper","operate(ctx","operator'","operator,","operator.","operator;","operatorfunc","operatorfunc(kind","operatorkind","operators.","operators/convert","operators/valid","operators:","operators:","operator。","operator,那么","operator:","operator:valid","optim","option","option,","optional.","options.","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","optionsregexp","option,并且实现","order.","order:","origin","os.exit(1)","os.exit(1).","others).","otherwis","out","out()","output","outsid","overrid","override,","overrideglob","p","p90","packag","package,","package.","package:","packagecom","packagecomments(path","packages(par","packages.","page.","panic","panic(err)","panic.","panic。","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parametergener","parametergenerator)","parametergeneratorparametergener","parameters,","parameters.","parameters:","parent","parent'","pars","parsecom","parsecomments(com","parserequestform","part","partial","pass","patch","path","path(\"message\",","path(key","path(nam","path(path","path).observe(elapsed)","path,","path.","path:","pathnod","paths:","path,query,header,form,file,bodi","pattern","paymentrequir","peopl","performant,","philosophi","pkg","pkg/api","pkg/apis/modifi","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","pkgpath","place","playground/validator.v9","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","playground/validator,提供了用于生成","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","po","point","pointer","pointer.","popular?","port","port\"`","port()","port(port","port.","pos.","posit","post","pprof","pprof,","pr","practic","pre","preconditionfail","preconditionrequir","predefin","prefab","prefab。","prefab。启用之后,所有业务函数的第一个参数必须是","prefab,即","prefab,名称为","prefix","prefix\")","prefix\",","prefix,","prefix:","prefix,那么","present","prevent","previou","printer","prior","prioriti","priority()","privat","process","produc","produce(w","produce.","produceallifproducesisempti","producenoneforhttpdelet","producerconsum","producers,并且他们的行为和","producers:","producer。","producer,即允许响应体为空。","producer:","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","project\")","project.register(root)","project:","prometheu","prometheus,提供了一个","propos","provid","proxyauthrequir","put","put()","put(in","put(inst","putinterfac","putinterface(ifac","qualifi","queri","query(\"count\",","query(key","query(nam","query,head","quick","quit","r","random","read","readable.","reader","reader.","readme.md","ready,","reason","reason,","reason.","reason。","reason,方便客户端判断错误类型。","recal","receiv","recommend","recommended.","recovered.","redirecttrailingslash","refer","reflect","reflect.kind","reflect.structtag","reflect.typ","reflect.type)","regexp","regexp.mustcompile(`^[","regexp:","regexp:[a","regexpnod","regexpnode.","regiser.","regist","register([]def.descriptor{{","register(root","registerconfiginstaller(ci","registerdestinationhandl","registerdestinationhandler(handl","registerparametergener","registerparametergenerator(gener","registerprefab()","registri","registries\")","regular","relat","relationship","replac","replacement:","repli","repo","report","req","req.header.get(\"cont","req.url.path","request","request()","request(method","request)","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestedrangenotsatisfi","requestentitytoolarg","requestexecutor","requestheaderfieldstoolarg","requestid(en","requestidkey(key","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests.","requests:","requesttimeout","requesturitoolong","request。config","requir","resourc","resource,","resource.","resp","respons","response.","responsewrit","responsewriter()","responsewriterresponsewrit","responsewriter。可是使用","rest","rest.newclient(cfg)","result","result\",","result.","results,","results.","results:","results。其中","retriev","retrun","return","return.","rewrit","rfc","right.","root","root.addcommand(newinitcommand())","root.execute();","rout","routepath()","router","router.","routingchain","routingchain)","routingchain.continue()","rule,","rules:","run","run(cmd","run.","run:","runtimeimag","same","satisfi","scheme","scheme.","scheme:","schemes:","scope","scratch","second","see","seen","segment.","select","send","sens","sent.","separ","sequenc","serial","serv","serve()","serve=\":8081\"","server","server\",","server,","server.","servic","service!","service.","service.builder,","service.contextprefab。这个","service.httpcontextfrom(ctx)","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","service.servehttp()","service/rout","service;","services.","serviceunavail","set","set(key","set(nam","set.","setdefaultlogger()","sethook","sethook(hook","setlogg","setlogger(logg","setmodifi","setmodifier(m","settings:","sever","severity.","severityerror","severityfat","severityinfo","severitywarn","short","short:","shortflag","show","shown","shut","shutdown","shutdown(ctx","shutdown,","signatur","signature:","signatures)","silentlogg","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","site","situation.","sleep","slice,","small","smoothli","snippet","someapi","somedefinitions,","somefunction()","somemiddlewar","somemiddlewares,","someth","something.","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","sourc","source()","source,name[,default=value]","source.","source:","sourceaddr(en","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","source。其他的","source:path,query,header,form,file,body,auto,prefab。","spam","span","span.","spec.","spec.infoprops{","special","specially.","specif","specifi","specification:","specified,","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starting.","starts.","starttim","static","statu","statuscod","statuscode()","stderr","stdlogger。可以通过","stdout","step","still","store,","store.","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","stream","stream\"","string","string(tag","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","stringnod","stripped.","strongli","struct","struct\",","struct(inst","struct,","struct.","struct:","structfield","structs,","structur","structure\",","struct{}","stuff","sub","submatches.","subsequ","succeess","success","success\",","such","suffix\")","suffix\",","summari","summary:","support","support,","support.","sure","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","swagger","swagger,","swagger.json","switch","symbol","system","tabl","table:","tag","tag()","tag.","tags.","tag。","take","target","target.","tbd","teach","teapot","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","the/rest/path","then,","therefor","therefore,","this:","though","three","time","time,","time.dur","time.duration.","time.millisecond)","time.now()","times,","tire","titl","title:","tl","tls(certfile,","to:","todo:","token.pos)","toolchains\",","toomanyrequest","total.","touch","trace","tracer","tracing,","translat","treat","tri","true,","true,那么除了设置当前","two","type","type\"","type\"),","type\"`","type()","type.","type.fieldbyindex.","type:","typenam","typenameinvalid","types.","types.go","types:","type为了能让","typic","u","uint","uint(tag","uint(value),","uint)","uint*,","uint.","uint16","uint16(tag","uint16)","uint32","uint32(tag","uint32.","uint64","uint64(tag","uint64.","uint8","uint8(tag","uintptr","unambigu","unauthor","unavailableforlegalreason","under","understand","unimport","uninstal","uninstall(build","uniqu","unix","unless","unlik","unmarsh","unprocessableent","unsupportedmediatyp","until","up","updat","upgrad","upgraderequir","upper","url","url:","urlencod","urlencoded\"","us","usability.","usag","usage.","use,","use.","use:","used.","user","user,","usual","usually,","util","v","v(level)","v.","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","v2","valid","valid.","validate(cmd","validate(nam","validate(object.(*object));","validate(target","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation)","validation,","validation.","validation:","validator'","validator.","validator.int(\"min=1\"),","validator.int,","validator.newcustom(","validator.str","validator.uint(\"min=1\"),","validator:","validatorforanobject","validators,用于","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","values.","var","var,","variantalsonegoti","vc","velocity.","vendor","vendor。","verb","verb,","verbos","verboser,","verboser.","veri","verifi","version","version(vers","version.go","version:","versions:","via","via:","view","viper","w.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","way","ways.","we'll","we'v","wealth","well","well.","whether","whole","within","without","won't","works!","works:","world!\",","wrapper","wrapper.","write","writeheader()","writeheader().","writer.","written","wrong","wrong,","wrong.","www","x","xml.marshal","xml.unmarsh","yaml","you'll","you'v","you:","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","{...)","{...}","{executablefilepath}/","{executablefilepath}/config/","{return","|","}","})","}),","},","}...)","↑","↓","│","└──","├──","。","一个创建命令的私有函数","一个基本的插件框架如下:","一个表示当前命令的所有参数的","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","一致的","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","一般情况下,我们使用最新版本的","一般情况下,插件应该通过插件","一般情况下,用户会使用这个全局的容器。","上","上添加一个中间件用于提取","上的中间件,用于打印所有路由匹配成功的请求的日志。","下查看启用的","下面用一个例子来说明这几个节点:","不能满足实际的业务需求,可以通过","与","与业务函数的参数名称无关。","且成功匹配的情况下,中间件的执行按照","业务函数","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","业务函数返回结果如何放到请求的响应中。","业务方法:","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","两个服务项目。","中","中。","中一类特殊的","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中也提供了直接打包成镜像的命令:","中传递","中使用","中创建","中创建实例并通过","中包含","中包含了两个组件功能实现了","中包含了许多实现了","中可以看到","中定义。api","中定义的动作以及对应的","中实现的唯一一个","中打印表格的功能。","中提供了","中携带","中添加","中添加插件配置。","中的公开字段根据一定的规则(规则参考上面的注释)从","中间件","中间件不应该修改","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件接口如下:","中间件添加在","中):","中,context","中,不能在任何子目录下使用","中,业务函数是","中,存在一些","中,我们也经常看到使用数字","中,我们建议所有的","中,所有的","中,提供了","中,每一个","中,目前包括三个命令:","中,都有一组","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","中,错误需要实现","中:","为","为了保证业务与","为了方便使用,nirvana","为了演示这个过程,我们逐步构建这个项目。","为所有","为所有的","为空的","为被替换为","主要是以","之上,构建了","之前。","之前使用。","之前,需要知道以下几件事情:","之后,编译运行。然后访问","之后,通过","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","也在当前包中。如果需要对配置进行扩展,增强","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","也就是说,业务可以完全不依赖框架。","于","于是","介绍","从","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","从请求中获取数据。","从请求的那一部分取得数据,然后传递给业务函数。","代码如下:","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","以及插件化功能。","以外,config","以外,还会设置全局的","会从第一个","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","会把对应的","会显得非常冗余。因此","会生成一个完整的","会被由命令","会读取","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","但是一般情况下,我们不应该这样使用","但是为了使","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","使用客户端","使用方法如下:","使用自定义的","使用范例","使用默认的","依赖的结构体都会被提取出来并生成到","保存了一个请求的数据,用","信息。","信息的提取。","修改。","修改一个资源的部分内容","修改器","修改器用于在生成路由之前修改","修改器,请求过滤器,api","值","值。一般情况下可以设置为代码的","健康检查插件","健康检查插件提供一个","先执行。并且执行之后会返回","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","公共部分的构建,而每个","公开给用户使用。于是我们需要给","关闭插件","其中","其他与","其他与具体","具体实例类型","内部,比如一个","准备工作","函数。请参考","函数即可:","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","分别对应","列表的","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","则是将业务函数的返回值转换并写入到响应的","则用于判断一个错误是否是由当前的","则用于构建特定的","则由","则表示请求不应该被继续处理,立刻丢弃。","则负责将业务函数的返回结果写入到响应体中。","则针对单个的业务参数和返回值,可以对值进行验证和修改。","创建","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","创建的项目中,可以在","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","创建,用来表示每一个","删除一个资源","到命令中","到自己的账户下,然后下载源码到本地开发目录中:","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","前缀路径","剩余路径类型节点","剩余路径类型节点:","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","功能,并提供了从","加上","加上一些附加属性,用来表示返回的错误码等信息。","加上空的","包","包中存在三个概念,分别是","包中对","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中):","包中,可以看到","包中,提供了如下功能:","包之间的依赖关系:","包介绍","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包会从以下文件列表中读取配置文件:","包依赖了","包则是利用了","包利用","包包含","包包含了","包包含多个工具用于","包和","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包实现了框架","包实际上都是利用了","包帮助用户快速构建项目。","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包提供了一个","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包提供了一个简单的","包提供了一系列的方法帮助用户快速生成用于校验参数的","包提供了一组基础的日志","包提供了工具方法用于将转换函数包装成","包提供了相应的工具用于注册用户自己的","包提供的","包提供的数据结构生成","包提供的方法注册自定义的","包提供的方法进行注册:","包是一个全局实例容器,每种类型对应一个实例。","包有一个默认的","包来说就简单很多了,这个包里包含一个","包注册指标。采集端可以通过","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包的","包的依赖,可以自行实现错误包,只要产出的错误符合","包的入口是","包的实现基于","包的插件能力:","包相对","包类似于标准库的","包读取源码并生成","包路径:","包还提供了一个全局的","包还提供了方法用于创建自定义验证器:","包进行","包进行路由构建和匹配。","包里提供了一个","包除了包含对","包,但是提供了方法用于生成格式化的错误和错误判断。","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于分离实例的创建和","包,用于读取项目源码,并生成与","即创建了","即可。","即可得到返回结果:","即可查看文档。","去读取指定路径的源码,然后从中找到标记了","去读取数据并进行类型转换。","参数值来源于","参数值来源于当前","参数名称,作为","参数和返回值定义","参数描述","参数来源","参数的类型转换和数据验证。","参考了","取得返回值,反序列化成","变更。","另外","只使用","只能生成","只需要将业务函数对应位置的","可以不同。","可以在","可以构建带有","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","可以读取源码,获取结构对象和注释信息。","可以通过","可能不能满足实际使用需求。因此","可被","同等级别的字段","名称","名称为","后通过","启动时会打印出","启用","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件后,可以直接向","启用插件并使用默认配置","命令","命令为例,说明单个命令的基本结构:","命令启动容器,然后进行访问:","命令对应的包在","命令就可以完成编译工作:","和","和一个使用了","和业务函数的参数一一对应,而","和插件系统。这个包放置在根目录中是因为这个包是","和相应的功能。","和端口。","和第三方功能的扩展)。","和返回值的","和配置读取,为","因为只获取一条消息,此处为","因此在","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在","在一个","在一个请求路由匹配成功后,nirvana","在上面的定义中,存在两个额外功能:","在上面的路径节点中,每个节点都可以绑定一个","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在业务的实际场景中,默认提供的","在使用","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在完成了","在完成修改并提交到自己的","在实现一个自定义的","在实际的业务中,http","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在常见的商业","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在接收到","在整个","在服务启动之后,可以通过浏览器或者命令行访问","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","在每个","在没有","在设计上与现存的一些","在运行过程中使用的","在这个包中,主要包含三个概念:config,cli","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","在需要发布的时候,通常需要打包成镜像的形式,在","在需要生成","在项目的","地址。","基本结构如下:","基础类型的转换器这些转换器一般是用于将请求里的","基础类型,结构体类型和自定义类型。目前验证方法基于","处理框架:","多客户端整合","多客户端整合。","大版本的兼容性。即使用","大部分字段与","如下:","如果","如果以下路径都添加了中间件:","如果希望对","如果接收类型是","如果有多个","如果服务正常,则","如果类型符合","如果能返回一个","如果设置了","如果读取到配置文件,那么除了使用","如果需要新增命令扩展","如果需要给字段设置默认值,则需要使用","字段中,可以在客户端使用","字段无效","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","存在优先级,优先级高的","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","完全匹配。","完成","定义","定义。","定义了","定义了一个返回","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义的无关性,nirvana","定义相关的代码都在这个目录中","定义,再对应业务函数:","定义,可以修改或删除","定义,然后由","定义,用于描述","定义:","实例","实例。","实现了","实现了这个接口后,通过","实现的","实现,帮助用户快速构建名为","实际上是一个","实际上是调用的","实际上要填写的部分就是只与自身业务相关的信息。modifi","客户端。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","容器如下:","对于","对于不需要输出日志的场景,使用","对于中间件而言,处理完当前的任务之后只需要调用","对于没有","对于结构体类型,在需要的字段上添加名为","对于这种错误,都会以","对应","对应一个","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","将","将数据写入到响应。","将框架传递给它的与请求绑定的","将类型转换为字节数据写入到响应体中。","将返回值转换为字节写入响应中。在","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就无效。如果","就能够看到","就足够了。但是为了让错误能够以","尾部是不是存在","工作流程","帮助用户把实例方法转换为","并且会检查最后一个","并使用","并成为","应该返回","开发工具介绍","开发的情况下,需要保持对","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","快速生成","性能分析插件","性能分析插件添加与","成功状态码","我们建议","或","或域名,可以有多个","所有与","所有的","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","执行","执行完成之后,请求也处理完成了。","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","扩展了","指定其他输出目录(目前仅支持生成","接下来以","接下来我们给项目增加一个","接口。swagger","接口。其中","接口。即:","接口。如果实现了,就会以","接口。用户在","接口即可。","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","接口如下(这个接口并没有显式定义在","接口如下:","接口实例类型","接口实现了请求跟踪机制,会在","接口或者是","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","接口,可用于针对单个参数或返回值进行验证和修改:","接口,用于创建具有一类特征的","接口:","接收配置以外,还可以通过一些帮助方法获取配置:","描述","描述。所有的","描述符","描述符。构建完成的","提交代码。","提供了","提供了一个命令用于从项目中生成文档:","提供了一个新的接口:","提供了两种类型的","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","提供了多个方法用于设置生成服务需要的日志,definit","提供的","提供的一些","提供的用于生成","插件","插件实现了这个接口之后,即可通过","插件接口的插件。","插件接口:","插件提供了一个函数接口:","插件机制","支持良好,因此在","数据。","数组包含了这个路径下的所有定义。","整合客户端","文件","文件中,方便客户端使用。","文档","文档。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","文档和客户端。","文档截图如下:","文档生成和客户端生成会依赖这个配置文件进行","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法","方法。","方法。clone","方法。比如某个","方法一","方法二","方法包","方法包。","方法安装插件。","方法就应该是","方法用于在对","方法用于安装","方法用于直接创建出","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","方法获取类型,","方法获得","方法返回,因此这两种类型没有对应的方法。","方法都是语义层面的,为的是提高","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","方法,这个方法是一个抽象方法,用于描述一种行为(比如","无","时候,使用","时,使用","是","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","是一个着重于提高开发效率和业务解耦的","是一个短语,用于描述这个","是一样的。","是业务函数返回值处理器,通过调用","是从","是具体要验证的类型,不能使用接口。","是否由这个错误工厂生成。","是基础包,分别负责日志基础接口和错误处理基础接口。","是对","是由服务端生成而不由客户端提交,error","是真正的参数生成器,通过调用","是返回一个资源列表的,那么","是链式调用的,也就是说上一个","暴露","更新一个资源(幂等)","有","有关的所有数据结构,产出的结构可用于生成文档和客户端。","有关,因此如果多个","有时候默认的验证器不能覆盖复杂的验证需求,因此","服务。","服务。因此","服务使用的协议,只能填写","服务启动提供了命令行支持。","服务用于访问这个文档。打开浏览器,访问","服务配置的特殊性,config","机制,允许在","机制,可以在收到一个请求的时候,立刻进行处理。并根据","机制,用于单独配置每一项信息:","来启用插件,并且将插件","来唯一确定一个错误","来提供","来标志的错误。但是数字","来生成","来生成一个能够处理当前的路由上下文的","来自于服务端本身。","来表达这些配置:","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","构建","标准接口如下:","根命令中,比如:","根据上面的","根据资源唯一","框架。","框架不同,它的核心目标是让业务与框架隔离。","框架中处于最高优先级。filter","框架会为每个请求构建这样的","框架的","框架的设计核心思想是:隔离","框架设计概览","概念","概览","模式后,level","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","正则表达式,用于匹配路径","正确实现","此时","此时在","每个","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","每种","比如设置","没有太大区别:","注册","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","注册需要的","注意,get()","注意:oper","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","注:如果在","注:这个","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","测试以外,还需要使用","添加","添加到","添加成功后,所有前缀匹配","然后创建两个服务项目(仅用于演示):","然后在","然后就可以直接使用命令创建项目(请确保","然后编译运行,访问","版本信息插件","版本信息插件提供一个","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","状态码作为基础的:","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","生成","生成。","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","生成代码","生成代码:","生成代码:","生成匿名函数:","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","生成客户端","生成的客户端代码如下:","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","生成的客户端是版本化的,版本在","生成,客户端代码生成,项目结构生成。","生效之前,对","用于传入参数输出一个真正的错误。","用于传递请求的上下文。context","用于分析源码的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于将请求体中的数据转换为业务函数需要的类型,而","用于描述一个业务函数的参数的来源和默认值。","用于文档和客户端生成","用于暴露服务端指标。","用于构建","用于检查服务是否正常。","用于生成一个匿名函数,生成的函数的签名没有方法的","用于生成业务函数的参数的","用于真正发起请求,并完成","用于表示代码注释的","用于访问","由","由于","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的两个方法:","的主要命令,利用","的使用方法和普通","的入口包。","的兼容性。","的功能,需要按照上述结构进行开发。","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的参数与返回值。","的参数和返回值中,尽量避免使用其他接口。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的各个组件也是依据这个基本法设计的。在","的命令行和其他依赖工具:","的响应,响应体为:","的基础类型,供业务函数使用。//","的填充。","的字段。","的字段。忽略所有没有","的定义。","的定义以外,还提供了一些函数,帮助快速构建","的实例而不是","的客户端:","的对应关系。","的工具","的开发工作后,我们需要将","的形式。","的形式判断一个","的形式向","的形式向客户端返回,我们还需要给","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的情况下,nirvana","的数据来源都是来自于请求,而","的文件用于把当前的命令加入到","的方式有两种:","的方法与","的方法:","的最后一个返回值加上","的最小值为","的格式满足:","的注册方法即可注册","的版本号。下表中展示了","的用户提供一个文档,方便用户阅读。nirvana","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的示例:","的第一个参数添加上名为","的结构体类型,会递归遍历以寻找带有","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的请求都会执行这个中间件。","的调用者。这样就完成了对一个项目的","的路径上。","的运行,只用于描述项目的信息以及区分不同版本的","的返回值会作为下一个","的返回值作为","的返回值作为数据返回。","的返回值来确定是直接丢弃该请求还是继续处理。","的返回结果。","的返回结果,构建出相应的客户端和文档。golang","的配置文件在根目录的","的配置,用于创建","的错误)。","的除了","的需要的包定义文件","的顶级包,而且其依赖的所有包只来自","的项目结构如下:","的顺序。","监控指标插件","监控指标插件基于","目前","目前客户端生成对接口的支持还不完善,仅仅对","目前支持三种类型的验证,分别对应","目录下生成","目录中就能看到编译后的二进制文件,直接运行:","目录:","直接编译运行","相关接口如下:","相关的所有定义和类型信息。api","相关类型:","真正的实例,即","种类型的","空的","端口提供服务。为了防止端口冲突,可以使用","第一种方法带有","第一种方法支持使用","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型","类型。","类型。业务函数的参数也响应的变成了","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型是否和业务函数的参数类型一致。","类型的","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","类型转换为了","类型):","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","系列包","系列包包含:","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","级别的配置,这些配置是针对当前服务的。而对应的","结构体包含了一个具体的","结构体包含具有如下含义的字段:","结构体,可以组合成一个:","结构,然后再返回给","给项目添加一个","统一网关访问","继承的字段","编写,只是为了通过","编译并打包成","编译运行","编译运行后可以得到结果:","而不是","能转换为可读的数据结构,构建了","自动处理数据转换,nirvana","自定义验证器","自身和标准库(config","范例如下:","范例,因此可以直接运行查看效果。","获取一条消息的","获取接口实例:","获取某个实例的方法,之后再在服务启动逻辑里","获取资源","获取资源列表","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","要求每个插件提供一个","设置","设置为","设置接口实例:","设置服务","设置服务名称","设置服务版本号","设置服务的描述","设置监听的","设置监听的端口。","设置请求","设置路径前缀,默认值为","访问","证书和密钥。","识别的错误,但是如果业务逻辑中如果不希望引入对","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","该命令默认会在","详细描述这个","说明了请求和响应中的数据类型。为了根据","请求。","请求中使用的都是","请求中,content","请求日志插件","请求日志插件会添加一个在","请求的","请求追踪插件","请求追踪插件基于","读取源码并进行分析,产出","调用,可以生成客户端以供使用:","负责一种类型的参数的验证和类型转换工作。","负责一种类型的返回结果的数据转换工作。","路径","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径匹配完成后,会调用匹配链的最后一个节点的","路径同等级别的字段","路径替换,因此需要正确设置版本规则。","路径默认为","路径,默认值为","路由和处理的所有功能。","转换为路由需要的数据结构,涉及到以下内容:","转换函数必须符合","输出日志如下(项目路径和日志时间会有所不同):","过滤器","过程。也就是可以在声明","返回","返回值可以是任意结构,自动转换并写入到","返回值目标","返回出去,供业务函数使用。//","返回回去。","返回服务当前是否健康。api","返回服务的版本信息。api","返回的是资源数组,所以使用","还会将","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这两种方法都可以创建","这两种类型的请求体,并转换为","这个","这个主要是利用了","这个例子中,验证器要求","这个包并进行命令注册:","这个包方便了用户创建能够被","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个实例方法容器分离了方法的","这个插件暴露三个选项:","这个节点匹配剩余所有路径。","这个过滤器判断","这个过滤器只针对","这个返回值类型必须是","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","这套日志","这就是","这就表示文档生成成功,并且提供了一个","这是一个在","这是一个工具方法,用于快速生成一个参数结构。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","这样做有两个优势:","这样就能够非常方便的错误创建和错误判断了。","这样就能通过","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","这种形式的","这里添加的业务函数都是以","进行了扩展,涉及到字段的改变,也需要在这个包中修改","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行修改。","进行包装的时候,获取正确层级的调用栈信息。","进行开发,但是需要保证两个","进行扩展,需要遵守上面这些规则。","进行描述的。首先看一个","进行注册。然后提供相应的","进行解析。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","选项的注释。两个选项的值对应两个函数,分别返回","通常对应于","通常情况下,我们需要快速添加一些","通常情况下,有","通过","通过具体错误的","那么","那么如果存在请求","部分,例如:","都是通过","都有一个对应的","都通过这个","都遵守","都需要去描述这个参数,那么","配置器机制","配置基本信息以外,还提供了插件机制。","配置文件名:","配置文件,用于描述项目的基本信息和结构。","采集指标数据。","里。","里取值。","里的值进行文本国际化。","里获取的。","针对请求的","链接","错误包","错误类型,必须是","镜像","限制","除了","除了使用","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","除了常规的","除了插件","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。","集合上述所有功能的","需要使用","需要实现接口:","项目","项目。项目结构如下:","项目名[:模块名]:错误名","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","项目,用于保存所有服务的客户端:","风格,并且在","首先会利用","首先创建","首先看","首部有没有","验证器函数必须符合签名","默认值","默认启用的","默认情况下,nirvana","默认情况下,我们会为每个服务生成如下结构的客户端:","默认情况下,插件会添加四个","默认提供了","默认提供的","默认路径为"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"\n\nTable of Contents generated with DocToc\n\nNirvana\nInstallation\nGetting Started\nAPI quick start\nValidate it!\nIs it popular?\nShow me the doc\n\n\nUser Guide\nAPI Descriptor\nConsumes and Produces\nMiddleware\nAPI Definition\nParameter\nResult\nValidation\nOpenAPI\nConfigurer\nError\nLogging\nPlugins\nMetrics\nProfiling\nTracing\n\n\n\n\nDeveloper Guide and Proposals\nProposals\nPlugin framework\n\n\n\n\n\n\nNirvana\nEnglish version of this docs is expired. We will rewrite it in the future. If you have any idea or you want to contribute to this docs, PLEASE let us know it.\nNirvana is a golang API framework designed for productivity and usability. It aims to be the building block for\nall golang services in Caicloud. The high-level goals and features include:\n\nconsistent API behavior, structure and layout across all golang projects\nimprove engineering productivity with openAPI and client generation, etc\nvalidation can be added by declaring validation method as part of API definition\nout-of-box instrumentation support, e.g. metrics, profiling, tracing, etc\neasy and standard configuration management, as well as standard cli interface\n\nNirvana is also extensible and performant, with the goal to support fast developmenet velocity.\nInstallation\ngo get -u github.com/caicloud/nirvana\n\n# for openapi generation\ngo get -u github.com/caicloud/nirvana/cmd/openapi-gen\nGetting Started\nAPI quick start\nIn Nirvana, APIs are defined via definition.Descriptor. We will not introduce details of the concept Descriptor,\ninstead, let's take a look at a contrived example:\n// API descriptor.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Corresponding to the first result\",\n },\n {\n Destination: definition.Error,\n Description: \"Corresponding to the second result\",\n },\n },\n },\n },\n}\n\nThis is an echo server API descriptor. The descriptor is a bit complex at first glance, but is actually quite\nsimple. Below is a partially translated HTTP language:\nHTTP Path: /echo[?msg=]\nHTTP Method: Get\nHTTP Headers:\n Content-Type: Any Type\n Accept: text/plain or */*\nThe request handler Echo receives two parameters and returns two results, as defined in our descriptor.\nNote the first parameter is always context.Context - it is injected by default config.\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNirvana will parse incoming request and generate function parameters for Echo function as defined via\nDefinition.Parameters - parameters will be converted into the exact type defined in Echo. Once done,\nNirvana collects the results and sends back response.\nWith our API descriptors ready, we can now create a server to serve requests:\npackage main\n\nimport (\n \"context\"\n\n \"github.com/caicloud/nirvana\"\n \"github.com/caicloud/nirvana/definition\"\n \"github.com/caicloud/nirvana/log\"\n)\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(nirvana.Descriptor(echo))\n log.Infof(\"Listening on %s:%d\", config.IP(), config.Port())\n if err := nirvana.NewServer(config).Serve(); err != nil {\n log.Fatal(err)\n }\n}\n\nNow run the server and test it:\ngo run ./examples/getting-started/basics/echo.go\nINFO 0202-16:34:38.663+08 echo.go:65 | Listening on :8080\nINFO 0202-16:34:38.663+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-16:34:38.663+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\ntest\nFor full example code, see basics.\nValidate it!\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :)\n\nFor full example code, see validator. Checkout the source code to see\nhow to add your own validation.\nIs it popular?\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig().\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in milliseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.1\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.2\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.4\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.8\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1.6\"} 28\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3.2\"} 41\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6.4\"} 73\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"12.8\"} 126\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"25.6\"} 260\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"51.2\"} 507\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"102.4\"} 995\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"204.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"409.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"819.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1638.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3276.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6553.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"13107.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"26214.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"52428.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.1\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.2\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.4\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.8\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1.6\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"12.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"25.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"51.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"102.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"204.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"409.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"819.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1638.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3276.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6553.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"13107.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"26214.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"52428.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 55\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 90\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 101\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 3\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\nShow me the doc\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +nirvana:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\nUser Guide\nAPI Descriptor\nAPI Descriptor is the core data structure in Nirvana: it holds all API definitions, and is usually the starting\npoint to write your services with Nirvana. Following is the golang type definition of Descriptor:\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nA single descriptor contains API definitions for a single path. It sets Content-Type to be produced and\nconsumed by the path handler. Each descriptor has an array of children; they will all inherit Content-Type\nfrom the parent descriptor, for example:\ndefinition.Descriptor{\n Path: \"/path\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Definitions: SomeDefinitions,\n Children: []definition.Descriptor{\n {\n Path: \"/child\",\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n },\n },\n}\n\nThe child descriptor is identical to:\ndefinition.Descriptor{\n Path: \"/path/child\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n}\n\nConsumes and Produces\nConsumes and Produces indicate content types that current definitions and child definitions support. Following\nis a table of all supported MIME types and their data types:\n\n\n\nMIME\nConsume\nProduce\nNote\n\n\n\n\nMIMENone\nnil\nnil\nCan be used into Consumes of Get/List and Produces of Delete\n\n\nMIMEText\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEJSON\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEXML\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEOctetStream\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEURLEncoded\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\nMIMEFormData\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\n\nMiddleware\nMiddleware is a convenient mechanism to intercept HTTP requests entering your application. To use middleware\nin Nirvana, just add your middlewaare definition to API descriptor. For example, below is the code snippet for\nmetrics plugin:\nmonitorMiddleware := definition.Descriptor{\n Path: \"/\",\n Middlewares: []definition.Middleware{newMetricsMiddleware(c.namespace)},\n}\n\nfunc newMetricsMiddleware(namespace string) definition.Middleware {\n ...\n\n // This is the middleware function to be called for each request.\n return func(ctx context.Context, next definition.Chain) error {\n startTime := time.Now()\n err := next.Continue(ctx)\n\n httpCtx := service.HTTPContextFrom(ctx)\n req := httpCtx.Request()\n resp := httpCtx.ResponseWriter()\n path := req.URL.Path\n elapsed := float64((time.Since(startTime)) / time.Millisecond)\n\n requestCounter.WithLabelValues(req.Method, path, getHTTPClient(req), req.Header.Get(\"Content-Type\"), strconv.Itoa(resp.StatusCode())).Inc()\n requestLatencies.WithLabelValues(req.Method, path).Observe(elapsed)\n requestLatenciesSummary.WithLabelValues(req.Method, path).Observe(elapsed)\n\n return err\n }\n}\nUsually, Nirvana users do not care about how middlewares are implemented: they only need to find useful\nmiddlewares and add them to their descriptors. But if necessary, writing your own middleware is also quite\nstraightforward, as shown above.\nUnlike Consumes or Produces, middlewares are not scoped within a single descriptor, which means a\nmiddleware for /some/path will impact all paths with prefix /some/path, even though they are in different\ndescriptors. For example:\ndefinition.Descriptor{\n Path: \"/path\",\n Middlewares: SomeMiddlewares,\n}\ndefinition.Descriptor{\n Path: \"/path/child\",\n}\n\nThe two descriptors do not have any relationship but their path have common prefix, i.e. path of the first\ndescriptor is a prefix of the second descriptor. In such case, SomeMiddlewares are also valid for the second\ndescriptor. For more details, check the design doc of router.\nAPI Definition\nAPI definition is another core data structure in Nirvana: it defines all handlers for your services. Following\nis the golang type definition of Definition:\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\nEach descriptor has multiple API definitions, and A single API definition contains handler for a single path\nand method combination. For example, here we define a descriptor to handle endpoint /echo, with two methods\nGet and Create:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: EchoGet,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n {\n Method: definition.Create,\n Function: EchoCreate,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n },\n}\nBelow is a list of all supported methods, as well as its corresponding HTTP method and success status code. By\nconvention, every API method corresponds to a HTTP method and ONE success status code. If an API function\nreturns no error, Nirvana will return the success status code.\n\n\n\nMethod\nHTTP Method\nSuccess Status Code\n\n\n\n\nList\nGET\n200\n\n\nGet\nGET\n200\n\n\nCreate\nPOST\n201\n\n\nUpdate\nPUT\n200\n\n\nPatch\nPATCH\n200\n\n\nDelete\nDELETE\n204\n\n\nAsyncCreate\nPOST\n202\n\n\nAsyncUpdate\nPUT\n202\n\n\nAsyncPatch\nPATCH\n202\n\n\nAsyncDelete\nDELETE\n202\n\n\n\nParameter\nParameter describes corresponding handler parameters of an API definition. Your request handler will receive\nthe exact number of parameters, with the same index as defined in your API definition. Note most of the times,\nyou will start your service using nirvana.NewDefaultConfig(), which adds request context as the first\nparameter. Therefore, parameters defined in descriptor appear in the second parameter of your request handler.\nFor example, in the following example, our endpoint /echo has two query parameters, and our handler Echo\nreceives three parameters: context, msg1 and msg2.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg1\",\n Description: \"First message to echo\",\n },\n {\n Source: definition.Query,\n Name: \"msg2\",\n Description: \"Second message to echo\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Result to return if success\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg1 string, msg2 string) (string, error) {\n return msg, nil\n}\nBelow is the golang type definition of Parameter:\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\nSource is the source of a parameter, and Name is the key of Source.\n\n\n\nSource\nDescription\n\n\n\n\nPath\nValue from URL path\n\n\nQuery\nValue from URL query string\n\n\nHeader\nValue from HTTP request header\n\n\nForm\nValue from HTTP body. Content-Type must be \"application/x-www-form-urlencoded\" or \"multipart/form-data\"\n\n\nFile\nValue from HTTP body. Content-Type must be \"multipart/form-data\"\n\n\nBody\nValue from HTTP body. Parameters of this type don't need a name\n\n\nAuto\nData receiver must be a struct. Parameters of the type don't need a name.\n\n\nPrefab\nValue from internal method. See Advanced Usage\n\n\n\nThe source Auto is for combining fields in a struct:\n// Here is an example for `Auto` struct.\n// The struct has some fields. Every field has a tag with name `source`.\n// The source should obey the format:\n// Source,Name[,default=value]\n// `Source` and `Name` are the same as before.\n// `default` is optional. its value should be basic data type (bool, int*, uint*, float*, string).\ntype Example struct {\n ID int `source:\"Path,id\"`\n Start int `source:\"Query,id,default=100\"`\n Tenant string `source:\"Header,X-Tenant,default=test\"`\n}\n\nIf you have lots of fields from a request, you can use Auto with a struct to get values from request.\nDon't use it when you only have a few parameters: separated parameters is more readable.\nAll values from HTTP request are string. Nirvana has a mechanism to convert strings to specific types for\nAPI function. The behavior is customizable via operator, which allows you to modify input request. In case\nthere is custom operator, input request will be converted to parameter type of the first operator. Here is\nthe data flow for a parameter:\n\n\nIf Data is empty and Parameter.Default is not nil, default value is used as Typed Data .\nResult\nResult is similar but simpler than Parameter. Its Destination indicates the target to write data. Just\nlike Parameter, we can modify output response via operator; the final returned type will be the return\ntype of the last operator.\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n\n\n\nDestination\nDescription\n\n\n\n\nMeta\nIndicates the value should be written to HTTP response header. Its type must be map[string]string\n\n\nData\nIndicates the value should be written to HTTP response body. The format is decided by HTTP Accept and Definition.Produces\n\n\nError\nIf an error occurs, Meta and Data is ignored. Error message will be written to HTTP response body\n\n\n\nValidation\nValidation is used to validate request input, including request body, query parameter, etc. In Nirvana,\nvalidation is implemented as a parameter operator, so it naturally has access to all request attributes.\nThere are three categories of validation: Var, Struct and Custom, where Var is used to validate basic\nbuilt-in types like string, int, bool, etc; Struct is for struct validation and Custom is for writing\ncustom validation.\nFor Var validation, simply add the validation operator including the type to validate. For example, the\nfollowing example shows a validation used to validate input string length is longer than 10 characters.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNote we are using Validator.String here since our API handler takes string as input. As an other example,\nif we want to validate input parameter is a number larger than 10, we should use:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Int(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg int) (string, error) {\n return strconv.Itoa(msg), nil\n}\n\nHere we've changed validator to validator.Int, and API handler has input parameter int.\nFor Struct validation, the first step is to add a validate tag to our struct, e.g.\n// Message defines the message to echo and to whom the message will be sent.\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nThen, similar to Var validation, we need to add an operator to our API descriptor. A struct instance is\nrequired for Nirvana to make sure the type to validate actually matches handler parameter type.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Create,\n Function: EchoV2,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Body,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Struct(&api.Message{})},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc EchoV2(ctx context.Context, msg *api.Message) (string, error) {\n return msg.Message, nil\n}\n\nFor Custom validation, you'll write your own operator and use it in API descriptor. The operators/validator\npackage contains helper funtions to create custom validator. For example, the following example uses custom\nvalidation to validate the input request body. Nirvana will convert input request to validator's parameter\ntype.\nOperators: []definition.Operator{\n validator.NewCustom(\n func(ctx context.Context, body *Body) error {\n if body.Name == \"\" {\n return errors.BadRequest.Error(\"you should have a name!\")\n }\n if body.Name != \"nirvana\" {\n return errors.BadRequest.Error(\"name ${name} must be nirvana!\", body.Name)\n }\n return nil\n },\n \"validate your name\"),\n},\n\nOpenAPI\nNirvana can generate OpenAPI 2.0 document from code simply.\nIn the example, swagger will be generated by builder of OpenAPI spec. \nThere are two parts of the code, one is meta info and the other is the generated function GetOpenAPIDefinitions\n// swagger is the struct which can be encoded into whole OpenAPI document\nswagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\n\nGetOpenAPIDeinitions is generated from Go types you defined. \nAdd tag +nirvana:openapi=true to the doc.go file in package of api types just like the follow code\n// +nirvana:openapi=true\npackage api\nAnd run cmd to generate the function GetOpenAPIDefinitions.\nIf input(-i) packages are more than one, comma-separated list can be used.\nopenapi-gen \\\n -i /go/package/to/your/types \\\n -p /go/package/to/your/generated/function\nYou can output the documents in json format by json encoder(or yaml format by yaml encoder)\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\nYou can also serve the documents in an OpenAPI endpoint, e.g. /v2/openapi.\nNOTICE: Don't add openapi descriptor into the descriptor passed to the builder.\nvar openapi = definition.Descriptor{\n Path: \"/v2/openapi\",\n Description: \"OpenAPI endpoints\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: OpenAPI,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"OpenAPI documents struct\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\nfunc OpenAPI() (*spec.Swagger, error) {\n swagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n ...\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n }\n return swagger, err\n}\nConfigurer\nNirvana has a mechanism to set partial options into config. Here is an example mentioned above:\nconfig.Configure(nirvana.Descriptor(echo))\n\nIn the example, nirvana.Descriptor returns a configurer and the configurer will install descriptors into nirvana config.\nThere are some inside configurers in the table:\n\n\n\nConfigurer\nDescription\n\n\n\n\nIP\nSet listening ip. Defaults to \"0.0.0.0\"\n\n\nPort\nSet listening port. Defaults to 8080\n\n\nLogger\nSet custom logger\n\n\nDescriptor\nAdd API descriptors\n\n\nFilter\nAdd request filters\n\n\nModifier\nAdd definition modifiers\n\n\n\nPlugins should also use configurers to configure plugins. For more details, see also Plugins\nError\nIn Nirvana core, error always means HTTP status code 500 - we try to avoid adding busniess logic into Nirvana.\nThat is, for error code other than 500, you are responsible to write your own error implementation, which only\nneeds to satisfy the following interface:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nAn error contains status code and error message. Package github.com/caicloud/nirvana/errors provides standard\nerrors implementation and many helper functions. For example:\n// Example 1:\n// Directly create an error.\n// Fields (e.g. ${customer}) in format correspond to args (e.g. customer.Name) in order.\nerrors.NotFound.Error(\"${customer} not found\", customer.Name)\n\n// Example 2:\n// Create an error factory at first.\nvar CustomerNotFount = errors.NotFound.Build(\"Project:Customer:CustomerNotFount\", \"${customer} not found\")\n// Then create error by factory.\nCustomerNotFount.Error(customer.Name)\n// You can check if an error is derived by specified factory.\nif CustomerNotFount.Derived(err) {\n // Do something.\n}\n\nUse interface errors.Error in function signature is strongly discouraged. You should always use standard\nerror interface and create errors by the methods referred above.\nLogging\nNirvana provides a default logging implementation, the API mirrors glog.\nFollowing logging methods are provided with increasing severity.\nInfo\nWarning\nError\nFatal\nKeep in mind that:\n\nEach level comes with formatter and newliner method, i.e. Infof and Infoln\nInfo has verbosity level, for example, you can use log.V(4).Info for unimportant logs\nFatal error will terminate program execution\n\nFor more details, see github.com/caicloud/nirvana/log package.\nPlugins\nMetrics\nThis plugin provides a lot of metrics with standard prometheus format. You can simply\nenable it via:\nconfig.Configure(metrics.Default())\n\nThe plugin will register a middleware and a descriptor into your nirvana server, installing metrics at endpoint\nhttp://host:port/metrics.\nThere are two config knobs in the plugin:\n\nNamespace: Metrics namespace is the prefix of all metric names. Defaults to nirvana.\nPath: Path is the descriptor path. Users can get metrics by the path. Defaults to /metrics\n\nYou can use following two configurers to change the settings:\n\nmetrics.Namespace(ns string): The function can modify metrics namespace.\nmetrics.Path(path string): The function can modity metrics descriptor path.\n\nFor more information about installed metrics, please check Prometheus Doc.\nProfiling\nThis plugin provides capability to install pprof into nirvana server, which is a direct reflection of golang\nstandard library net/http/pprof.\nYou can install the plugin via:\nconfig.Configure(profiling.Path(\"myprof\"))\n\nThen the plugin handles requests for the following paths:\n\n\"/myprof\": Show profiling index page.\n\"/myprof/profile\": Show cpu profile page.\n\"/myprof/symbol\": Show symbol page.\n\"/myprof/trace\": Show trace page.\n\nThe plugin has two configurers:\n\nPath(path string): The function can change profiling descriptor path. Defaults to /debug/pprof\nContention(enable bool): Use to enable contention profiling. Defauts to false.\n\nFor more information about pprof, please check PProf Doc.\nTracing\nTBD\nDeveloper Guide and Proposals\nProposals\n\nkickoff\nframework\n\nPlugin framework\nFollowing is a framework for writing nirvana plugin. All aforementioned built-in plugins are written with the\nframework: they are the best reference implementations if you ever want to draft a new plugin.\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\nThen user can use the plugin by:\nimport \"/path/to/plugin\"\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(plugin.ConfigA(fieldValue))\n}\n\n"},"guides/project.html":{"url":"guides/project.html","title":"项目结构和初始化","keywords":"","body":"项目结构和初始化\n创建项目\nNirvana 创建项目非常简单,不过在创建项目之前,首先需要下载安装 Nirvana 的命令行和其他依赖工具:\n$ go get -u github.com/caicloud/nirvana/cmd/nirvana\n$ go get -u github.com/golang/dep/cmd/dep\n然后就可以直接使用命令创建项目(请确保 $GOPATH/bin 在 $PATH 中):\n$ cd $GOPATH/src/\n$ nirvana init ./myproject\n$ cd ./myproject\n此时在 $GOPATH/src/myproject 会生成一个完整的 Nirvana 项目。项目结构如下:\n .\n├── bin # 存放编译后的二进制文件\n├── build # 存放项目的 Dockerfile 以及与构建相关的文件\n│ └── myproject # \n│ └── Dockerfile #\n├── cmd # 存放项目的启动命令\n│ └── myproject #\n│ └── main.go # \n├── Gopkg.toml #\n├── Makefile #\n├── nirvana.yaml #\n├── pkg # 所有的业务逻辑都应该在这个目录中\n│ ├── apis # 所有与 Nirvana API 定义相关的代码都在这个目录中\n│ │ ├── api.go #\n│ │ ├── filters # 存放 HTTP Request 过滤器\n│ │ │ └── filters.go #\n│ │ ├── middlewares # 存放 Nirvana 中间件\n│ │ │ └── middlewares.go #\n│ │ ├── modifiers # 存放 Nirvana Definition 修改器\n│ │ │ └── modifiers.go #\n│ │ └── v1 # 存放项目 v1 版本所有的 API 定义\n│ │ ├── converters # 存放 v1 版本需要用到的类型转换器\n│ │ ├── descriptors # 存放 v1 版本的 API 描述符\n│ │ │ ├── descriptors.go #\n│ │ │ └── message.go # 对应 message 业务逻辑的 API 定义,可以修改或删除\n│ │ └── middlewares # 存放 v1 版本需要用到的中间件\n│ │ └── middlewares.go #\n│ ├── message # 业务逻辑目录,这个目录是生成的样板,可以修改或删除\n│ │ └── message.go #\n│ └── version # 项目版本信息目录\n│ └── version.go #\n├── README.md #\n└── vendor #\n这个项目中包含了编译和构建容器的基本工具(Makefile 和 Dockefile),还有一个 golang/dep 的需要的包定义文件 Gopkg.toml。通过如下命令即可完成依赖包的安装:\n$ dep ensure -v\n到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个 API 范例,因此可以直接运行查看效果。\n编译运行\n直接编译运行\nNirvana 创建项目时自动生成了 Makefile,只需要使用简单的 make 命令就可以完成编译工作:\n$ make\n在项目的 bin 目录中就能看到编译后的二进制文件,直接运行:\n$ ./bin/myproject\n启动时会打印出 Nirvana 的 Logo 以及当前项目的版本信息以及监听的端口,默认端口是 8080。\n在服务启动之后,可以通过浏览器或者命令行访问 http://localhost:8080/apis/v1/messages:\n$ curl http://localhost:8080/apis/v1/messages\n就能够看到 API 的返回结果。\n编译并打包成 Docker 镜像\n在需要发布的时候,通常需要打包成镜像的形式,在 Makefile 中也提供了直接打包成镜像的命令:\n$ make container\n就会自动开始在容器内编译和打包镜像。不过这个过程中需要 golang:latest 和 debian:jessie 这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改 ./build/myproject/Dockerfile 。\n打包完成后,可以通过 Docker 命令启动容器,然后进行访问:\n$ docker run -p 8080:8080 myproject:v0.1.0\nNirvana 项目配置\n每个 Nirvana 项目都有一个 nirvana.yaml 配置文件,用于描述项目的基本信息和结构。\n# 项目名称\nproject: myproject\n# 项目描述\ndescription: This project uses nirvana as API framework\n# 服务使用的协议,只能填写 http 和 https\nschemes:\n- http\n# 访问 IP 或域名,可以有多个\nhosts:\n- localhost:8080\n# 项目负责人\ncontacts:\n- name: nobody\n email: nobody@nobody.io\n description: Maintain this project\n# 项目 API 版本信息,用于区分不同版本的 API\n# 用于文档和客户端生成\nversions:\n # 版本名称\n- name: v1\n # 版本描述\n description: The v1 version is the first version of this project\n # 版本规则\n rules:\n # 路径前缀,匹配前缀为 \"/apis/v1\" 的 API\n - prefix: /apis/v1\n # 正则表达式,用于匹配路径\n # 如果设置了 prefix,那么 regexp 字段无效\n regexp: \"\"\n # 这个字段仅用于在生成文档和客户端的时候,替换匹配的 API 路径。为空时不会进行替换。\n # 比如设置 replacement = \"/apis/myproject/v1\"\n # 那么 \"/apis/v1/someapi\" 为被替换为 \"/apis/myproject/v1/someapi\"\n replacement: \"\"\n\n这个配置文件不会影响 Server 的运行,只用于描述项目的信息以及区分不同版本的 API。API 文档生成和客户端生成会依赖这个配置文件进行 API 版本识别和 API 路径替换,因此需要正确设置版本规则。\n"},"guides/api.html":{"url":"guides/api.html","title":"API","keywords":"","body":"API\n概念\nNirvana Definition\n在 Nirvana 中,所有的 API 都是通过 Descriptor 和 Definition 进行描述的。首先看一个 List Messages 的 API 定义:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/apis/v1/descriptors/message.go\n\nfunc init() {\n register([]def.Descriptor{{\n // Path 定义了 API 路径\n Path: \"/messages\",\n // Definitions 数组包含了这个路径下的所有定义。\n Definitions: []def.Definition{listMessages},\n },\n }...)\n}\n\n// listMessages 定义了一个返回 Message 列表的 API\nvar listMessages = def.Definition{\n // 这个 API 返回的是资源数组,所以使用 List 方法。\n Method: def.List,\n // Summary 是一个短语,用于描述这个 API 的用途。这个短语在生成文档和客户端的时候用于区分 API。\n // 这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。\n Summary: \"List Messages\",\n // 详细描述这个 API 的用途。\n Description: \"Query a specified number of messages and returns an array\",\n // 业务函数\n Function: message.ListMessages,\n // 对应业务函数的参数信息。用于告知 Nirvana 从请求的那一部分取得数据,然后传递给业务函数。\n Parameters: []def.Parameter{\n {\n // 参数来源\n Source: def.Query,\n // 参数名称,作为 key 从 Source 里取值。\n // 与业务函数的参数名称无关。\n Name: \"count\",\n // 默认值\n Default: 10,\n // 参数描述 \n Description: \"Number of messages\",\n },\n },\n // 对应业务函数的返回结果。用于告知 Nirvana 业务函数返回结果如何放到请求的响应中。\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n根据上面的 API 定义,再对应业务函数:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/message/message.go\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。\nDefinition Method\n在 Nirvana 中,我们建议所有的 API 都遵守 RESTful 风格,并且在 URL 中携带 API 的版本号。下表中展示了 Nirvana 中定义的动作以及对应的 API 定义。\n\n\n\nNirvana 方法\nHTTP 方法\nHTTP 成功状态码\nURL\n描述\n\n\n\n\nList\nGET\n200\n/apis/v1/resources\n获取资源列表\n\n\nGet\nGET\n200\n/apis/v1/resources/{resource}\n根据资源唯一 ID/Name 获取资源\n\n\nCreate\nPOST\n201\n/apis/v1/resources\n创建一个资源(非幂等)\n\n\nUpdate\nPUT\n200\n/apis/v1/resources/{resource}\n更新一个资源(幂等)\n\n\nPatch\nPATCH\n200\n/apis/v1/resources/{resource}\n修改一个资源的部分内容\n\n\nDelete\nDELETE\n204\n/apis/v1/resources/{resource}\n删除一个资源\n\n\nAsyncCreate\nPOST\n202\n/apis/v1/resources\n异步创建资源\n\n\nAsyncUpdate\nPUT\n202\n/apis/v1/resources/{resource}\n异步更新资源\n\n\nAsyncPatch\nPATCH\n202\n/apis/v1/resources/{resource}\n异步修改资源部分内容\n\n\nAsyncDelete\nDELETE\n202\n/apis/v1/resources/{resource}\n异步删除资源\n\n\n\n对于 Nirvana 异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。\n所有的 Nirvana 方法都是语义层面的,为的是提高 API 定义的可读性。也就是说 List 和 Get 在一个 HTTP 请求中使用的都是 GET,两者没有区别。\n但是为了使 API 定义更加明确,我们应该根据场景确定使用哪个 Nirvana 方法。比如某个 API 是返回一个资源列表的,那么 Nirvana 方法就应该是 List 而不是 Get。\nDefinition Source\nDefinition Source 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n参数来源\n名称\n描述\n\n\n\n\nPath\n有\n参数值来源于 API Path\n\n\nQuery\n有\n参数值来源于 URL Query\n\n\nHeader\n有\n参数值来源于 Request Header\n\n\nForm\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 application/x-www-form-urlencoded 或 multipart/form-data\n\n\nFile\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 multipart/form-data\n\n\nBody\n无\n参数值来源于 Request Body\n\n\nAuto\n无\nAuto 类型对应的参数必须是一个结构体,通过结构体的 tag 定义来确定每个字段的来源\n\n\nPrefab\n有\n参数值来源于当前 server 内部,比如一个 DB 链接\n\n\n\nAuto 类型的 tag 范例如下:\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n}\n\ntag 名称为 source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是 Body 类型名称可以为空。\n如果需要给字段设置默认值,则需要使用 default={value} 的形式。 \n如果有多个 Auto 结构体,可以组合成一个:\ntype AnotherAutoStruct struct {\n ...\n}\n\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n AnotherAutoStruct\n}\n\n对于没有 source 的结构体类型,会递归遍历以寻找带有 source 的字段。忽略所有没有 source 的字段。\nDefinition Destination\nDefinition Destination 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n返回值目标\n描述\n\n\n\n\nMeta\n这个返回值类型必须是 map[string]string,会写入 Response Header\n\n\nData\n返回值可以是任意结构,自动转换并写入到 Response Body\n\n\nError\n错误类型,必须是 error\n\n\n\n给项目添加一个 API\n接下来我们给项目增加一个 API,用于获取一条消息:\nfunc init() {\n register([]def.Descriptor{{\n Path: \"/messages\",\n Definitions: []def.Definition{listMessages},\n }, {\n // 获取一条消息的 Descriptor。\n Path: \"/messages/{message}\",\n Definitions: []def.Definition{getMessage},\n },\n }...)\n}\n\n// 获取一条消息的 API 定义。\nvar getMessage = def.Definition{\n // 因为只获取一条消息,此处为 Get。\n Method: def.Get,\n Summary: \"Get Message\",\n Description: \"Get a message by id\",\n // 业务函数\n Function: message.GetMessage,\n Parameters: []def.Parameter{\n // 这是一个工具方法,用于快速生成一个参数结构。\n // message 是从 API Path 里获取的。\n def.PathParameterFor(\"message\", \"Message id\"),\n },\n Results: def.DataErrorResults(\"A message\"),\n}\n\n对应的业务函数如下:\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n添加 API 之后,编译运行。然后访问 http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是 json 类型):\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n这里添加的业务函数都是以 Golang 函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考 方法包。\n"},"guides/doc.html":{"url":"guides/doc.html","title":"生成 API 文档","keywords":"","body":"生成 API 文档\n在完成了 API 的开发工作后,我们需要将 API 公开给用户使用。于是我们需要给 API 的用户提供一个文档,方便用户阅读。Nirvana 提供了一个命令用于从项目中生成文档:\n$ nirvana api --serve=\":8081\"\n默认情况下,nirvana api 会读取 pkg/apis 并使用 8080 端口提供服务。为了防止端口冲突,可以使用 --serve 设置监听的 IP 和端口。\n该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):\nINFO 0702-15:47:52.010+08 api.go:87 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:47:53.499+08 api.go:95 | Project root directory is /home/go/src/myproject\nINFO 0702-15:47:53.500+08 api.go:179 | Listening on 127.0.0.1:8081. Please open your browser to view api docs\n这就表示文档生成成功,并且提供了一个 HTTP 服务用于访问这个文档。打开浏览器,访问 http://127.0.0.1:8081 即可查看文档。\n文档截图如下:\n\n"},"guides/client.html":{"url":"guides/client.html","title":"生成客户端","keywords":"","body":"生成客户端\n生成代码\nAPI 文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行 API 调用,可以生成客户端以供使用:\n$ nirvana client\n该命令默认会在 ./client 目录下生成 golang 客户端代码,可以通过 --output 指定其他输出目录(目前仅支持生成 golang 客户端,其他语言客户端尚不支持)。\n输出日志如下(项目路径和日志时间会有所不同):\nINFO 0702-15:50:54.156+08 client.go:73 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:50:55.609+08 client.go:81 | Project root directory is /home/go/src/myproject\nINFO 0702-15:50:55.610+08 client.go:106 | Generated golang client package myproject/client\n生成的客户端代码如下:\nclient\n├── client.go\n└── v1\n ├── client.go\n └── types.go\n./client.go 生成代码:\npackage client\n\nimport (\n v1 \"myproject/client/v1\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a versioned client.\ntype Interface interface {\n // V1 returns v1 client.\n V1() v1.Interface\n}\n\n// Client contains versioned clients.\ntype Client struct {\n v1 *v1.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (Interface, error) {\n c := &Client{}\n var err error\n\n c.v1, err = v1.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) Interface {\n return &Client{\n v1: v1.MustNewClient(cfg),\n }\n}\n\n// V1 returns a versioned client.\nfunc (c *Client) V1() v1.Interface {\n return c.v1\n}\n\n./v1/client.go 生成代码\npackage v1\n\nimport (\n \"context\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes v1 client.\ntype Interface interface {\n // GetMessage return a message by id.\n GetMessage(ctx context.Context, message int) (message1 *Message, err error)\n // ListMessages returns all messages.\n ListMessages(ctx context.Context, count int) (messages []Message, err error)\n}\n\n// Client for version v1.\ntype Client struct {\n rest *rest.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (*Client, error) {\n client, err := rest.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n return &Client{client}, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) *Client {\n client, err := NewClient(cfg)\n if err != nil {\n panic(err)\n }\n return client\n}\n\n// GetMessage return a message by id.\nfunc (c *Client) GetMessage(ctx context.Context, message int) (message1 *Message, err error) {\n message1 = new(Message)\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages/{message}\").\n Path(\"message\", message).\n Data(message1).\n Do(ctx)\n return\n}\n\n// ListMessages returns all messages.\nfunc (c *Client) ListMessages(ctx context.Context, count int) (messages []Message, err error) {\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages\").\n Query(\"count\", count).\n Data(&messages).\n Do(ctx)\n return\n}\n\n./v1/types.go 生成代码:\npackage v1\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n生成的客户端是版本化的,版本在 nirvana.yaml 中定义。API 依赖的结构体都会被提取出来并生成到 types.go 文件中,方便客户端使用。\n每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考 多客户端整合。\n使用客户端\n客户端的使用非常简单,只需要创建客户端,然后调用相应的 API 函数即可:\nfunc main() {\n cli := client.MustNewClient(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n限制\n目前客户端生成对接口的支持还不完善,仅仅对 io.Reader 和 io.ReadCloser 支持良好,因此在 API 的参数和返回值中,尽量避免使用其他接口。\n"},"concepts/cp.html":{"url":"concepts/cp.html","title":"Consumer && Producer","keywords":"","body":"Consumer and Producer\n包路径: github.com/caicloud/nirvana/service\n在 HTTP 请求中,Content-Type 说明了请求和响应中的数据类型。为了根据 Content-Type 自动处理数据转换,Nirvana 提供了 Consumer 和 Producer 接口。其中 Consumer 用于将请求体中的数据转换为业务函数需要的类型,而 Producer 则负责将业务函数的返回结果写入到响应体中。 \nNirvana 默认提供的 Consumers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 GET 之类的请求,因此不能转换为任何数据类型。\n\n\ntext/plain\n只能生成 string 和 []byte 类型\n\n\napplication/json\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 json.Unmarshal 进行解析。\n\n\napplication/xml\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 xml.Unmarshal 进行解析。\n\n\napplication/octet-stream\n只能生成 string 和 []byte 类型\n\n\napplication/x-www-form-urlencoded\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 类型,因此一般不转换为具体类型。\n\n\nmultipart/form-data\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 或 File 类型,因此一般不转换为具体类型。\n\n\n\nNirvana 默认提供的 Producers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 204 之类的响应,没有响应体,不需要写入。\n\n\ntext/plain\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\napplication/json\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 json.Marshal 将数据写入到响应。\n\n\napplication/xml\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 xml.Marshal 将数据写入到响应。\n\n\napplication/octet-stream\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\n\n添加 Consumer 和 Producer\n在业务的实际场景中,默认提供的 Consumers 和 Producers 可能不能满足实际使用需求。因此 Nirvana 的 service 包提供了相应的工具用于注册用户自己的 Consumer 和 Producer。\n注册 Consumer\nConsumer 需要实现接口:\n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Consumer:\nif err := service.RegisterConsumer(consumer); err != nil {\n log.Fatal(err)\n}\n\n在接收到 Content-Type 与 consumer 一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个 Consumer 去读取数据并进行类型转换。\n注册 Producer\nProducer 需要实现接口:\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Producer:\nif err := service.RegisterProducer(producer); err != nil {\n log.Fatal(err)\n}\n\n在需要生成 Conetent-Type 于 producer 一致的响应,并且业务函数需要返回数据的时候,就会调用这个 producer 将类型转换为字节数据写入到响应体中。\n快速生成 Consumer 和 Producer 的工具\n通常情况下,我们需要快速添加一些 Consumers 和 Producers,并且他们的行为和 application/octet-stream 一致的时候,那么可以直接使用工具方法:\nserializer := NewSimpleSerializer(contentType)\n\nif err := service.RegisterConsumer(serializer); err != nil {\n log.Fatal(err)\n}\n\nif err := service.RegisterProducer(serializer); err != nil {\n log.Fatal(err)\n}\n\n"},"concepts/operator.html":{"url":"concepts/operator.html","title":"Operator","keywords":"","body":"Operator\n包路径: github.com/caicloud/nirvana/definition\n在每个 API Definition 中,都有一组 Parameters 和 Results。其中 Parameters 和业务函数的参数一一对应,而 Results 则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,Nirvana 提供了 Operator 接口,可用于针对单个参数或返回值进行验证和修改:\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n在没有 Operator 的情况下,Nirvana 从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了 Operator,那么 Nirvana 会从第一个 Operator 的 In() 方法获取类型,\n并且会检查最后一个 Operator 的 Out() 类型是否和业务函数的参数类型一致。\n在实际的使用过程中,并不需要实现这个复杂的接口。Nirvana 提供了两种类型的 Operator:Validator 和 Converter。\nValidator\n包路径: github.com/caicloud/nirvana/operators/validator\nvalidator 包的实现基于 go-playground/validator,提供了用于生成 Operator 的方法:\nfunc Struct(instance interface{}) Validator\nfunc String(tag string) Validator\nfunc Int(tag string) Validator\nfunc Int64(tag string) Validator\nfunc Int32(tag string) Validator\nfunc Int16(tag string) Validator\nfunc Int8(tag string) Validator\nfunc Byte(tag string) Validator\nfunc Uint(tag string) Validator\nfunc Uint64(tag string) Validator\nfunc Uint32(tag string) Validator\nfunc Uint16(tag string) Validator\nfunc Uint8(tag string) Validator\nfunc Bool(tag string) Validator\n\n对于结构体类型,在需要的字段上添加名为 validate 的 tag。\n自定义验证器\n有时候默认的验证器不能覆盖复杂的验证需求,因此 validator 包还提供了方法用于创建自定义验证器:\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n验证器函数必须符合签名 func(ctx context.Context, object AnyType) error。其中 AnyType 是具体要验证的类型,不能使用接口。\nConverter\n包路径: github.com/caicloud/nirvana/operators/converter\n除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此 converter 包提供了工具方法用于将转换函数包装成 Operator:\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter\n\n转换函数必须符合 func f(context.Context, string, AnyType) (AnyType, error)。其中参数的 AnyType 和返回值的 AnyType 可以不同。\n在 Definition 中使用 Operator\n这是一个在 List Messages 的 API 中添加 Operator 的示例:\n// Definition\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: message.ListMessages,\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Operators: []def.Operator{\n validator.Int(\"min=1\"),\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n },\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n// 业务函数\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count uint) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n这个例子中,验证器要求 count 的最小值为 1,并且把 int 类型转换为了 uint 类型。业务函数的参数也响应的变成了 uint 类型。\n注意:Operator 是链式调用的,也就是说上一个 Operator 的返回值会作为下一个 Operator 的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:\nOperators: []def.Operator{\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n validator.Uint(\"min=1\"),\n},\n\n但是一般情况下,始终建议验证器放在前面,转换器放在后面。\n"},"concepts/filter.html":{"url":"concepts/filter.html","title":"Filter","keywords":"","body":"过滤器\n包路径: github.com/caicloud/nirvana/service\n在某些场景下,我们需要从源头对请求进行处理和过滤。Nirvana 提供了 Filter 机制,可以在收到一个请求的时候,立刻进行处理。并根据 Filter 的返回值来确定是直接丢弃该请求还是继续处理。\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nFilter 在整个 Nirvana 框架中处于最高优先级。Filter 返回 false 则表示请求不应该被继续处理,立刻丢弃。\nNirvana 提供的一些 Filters\nRedirectTrailingSlash\n这个过滤器判断 URL Path 尾部是不是存在 /,如果存在就重定向到没有 / 的路径上。\nFillLeadingSlash\n这个过滤器判断 URL Path 首部有没有 /,如果没有就加上 /。\nParseRequestForm\n这个过滤器只针对 application/x-www-form-urlencoded 和 multipart/form-data,然后 Parse 这两种类型的请求体,并转换为 Form 和 File。\n"},"concepts/prefab.html":{"url":"concepts/prefab.html","title":"Prefab","keywords":"","body":"Prefab\n包路径: github.com/caicloud/nirvana/service\nPrefab 是 Nirvana 中一类特殊的 Source。其他的 Source 的数据来源都是来自于请求,而 Prefab 来自于服务端本身。\n// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n可以通过 service 包的 RegisterPrefab() 注册需要的 Prefab。\nPrefab 类型的参数在生成文档和客户端的时候会被忽略,因此不要使用 Prefab 从请求中获取数据。\nNirvana 提供的 Prefab\nContextPrefab\nContextPrefab 是 Nirvana 中实现的唯一一个 Prefab,即 service.ContextPrefab。这个 Prefab 将框架传递给它的与请求绑定的 context 返回回去。\n使用方法如下:\nvar someAPI = def.Definition{\n ...\n Parameters: []def.Parameter{\n ...\n {\n Source: def.Prefab,\n Name: \"context\",\n },\n ...\n },\n ...\n}\n\n只需要将业务函数对应位置的 Parameter 设置为 Prefab,名称为 context 即可。\n但是一般情况下,我们不应该这样使用 ContextPrefab。请参考 Modifier 和 Context\n"},"concepts/modifier.html":{"url":"concepts/modifier.html","title":"Modifier","keywords":"","body":"Modifier\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,每一个 API 都有一个对应的 Definition。在我们实际开发过程中,经常会要求 API 和 业务函数有一致的行为表现。比如每个业务函数的第一个参数都是 Context。在这种场景下,如果每个 Definition 都需要去描述这个参数,那么 Definition 会显得非常冗余。因此 Nirvana 提供了 Definition Modifer 机制,允许在 Definition 生效之前,对 Definition 进行修改。\n这样就能通过 Modifier 完成 Definition 公共部分的构建,而每个 Definition 实际上要填写的部分就是只与自身业务相关的信息。Modifier 如下:\ntype DefinitionModifier func(d *definition.Definition)\n\nNirvana 提供的 Modifiers\n在使用 nirvana init 创建的项目中,可以在 pkg/apis/modifiers 下查看启用的 Modifiers。 \n默认启用的 Modifiers 包括:FirstContextParameter,ConsumeAllIfConsumesIsEmpty,ProduceAllIfProducesIsEmpty,ConsumeNoneForHTTPGet,ConsumeNoneForHTTPDelete,ProduceNoneForHTTPDelete。\nFirstContextParameter\n这个 Modifier 为所有 Definition 的第一个参数添加上名为 context 的 Prefab。启用之后,所有业务函数的第一个参数必须是 context.Context。\nConsumeAllIfConsumesIsEmpty\n这个 Modifier 为所有 Consumes 为空的 Definition 加上 */*。\nProduceAllIfProducesIsEmpty\n这个 Modifier 为所有 Produces 为空的 Definition 加上 */*。\nConsumeNoneForHTTPGet\n这个 Modifier 为所有 HTTP GET 类型的 Definition 加上空的 Consumer,即允许请求体为空。\nProduceNoneForHTTPDelete\n这个 Modifier 为所有 HTTP Delete 类型的 Definition 加上空的 Producer,即允许响应体为空。\nLastErrorResult\n这个 Modifier 为所有的 Definition 的最后一个返回值加上 definition.Error。\n"},"concepts/middleware.html":{"url":"concepts/middleware.html","title":"Middleware","keywords":"","body":"中间件\n包路径: github.com/caicloud/nirvana/definition\nNirvana 中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下: \n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过 Chain 进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。\n中间件添加在 Descriptor 中:\ndef.Descriptor{\n Path: \"/path\",\n Middlewares: []def.Middleware{SomeMiddleware},\n}\n\n添加成功后,所有前缀匹配 /path 的请求都会执行这个中间件。\n注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。\n中间件执行顺序\n如果以下路径都添加了中间件:\n1. /\n2. /path\n3. /path/path2\n\n那么如果存在请求 /path/path2/others 且成功匹配的情况下,中间件的执行按照 1 -> 2 -> 3 的顺序。\n中间件只与 URL Path 有关,因此如果多个 Descriptor 中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。\n"},"concepts/context.html":{"url":"concepts/context.html","title":"Context","keywords":"","body":"Context\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,Context 用于传递请求的上下文。Context 中包含 HTTP 的 Request 和 ResponseWriter。可是使用 service 包的 HTTPContextFrom() 方法获得 HTTP Context。HTTP Context 相关接口如下:\n// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\nNirvana 框架会为每个请求构建这样的 HTTPContext。如有必要,可以通过这些接口拿到与请求相关的所有数据。\n在一个请求路由匹配成功后,Nirvana 会把对应的 HTTPContext 传递给中间件,然后由中间件调用链继续传递。最终经由 ContextPrefab 传递给业务函数。\n中间件不应该修改 HTTPContext,除非您明确知道如何修改。\n"},"concepts/source.html":{"url":"concepts/source.html","title":"Parameter Generator","keywords":"","body":"Parameter Generator\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 8 种类型的 Source:Path,Query,Header,Form,File,Body,Auto,Prefab。\n每种 Source 对应一个 Generator。这些 Generator 负责一种类型的参数的验证和类型转换工作。\n// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n如果 Nirvana 默认提供的 Generator 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Generator:\n// RegisterParameterGenerator register a generator.\nfunc RegisterParameterGenerator(generator ParameterGenerator) error\n\n"},"concepts/destination.html":{"url":"concepts/destination.html","title":"Destination Handler","keywords":"","body":"Destination Handler\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 3 种类型的 Destination:Meta,Data,Error。\n每种 Destination 对应一个 Handler。这些 Handler 负责一种类型的返回结果的数据转换工作。\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n如果 Nirvana 默认提供的 Handler 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Handler:\n// RegisterDestinationHandler registers a type handler.\nfunc RegisterDestinationHandler(handler DestinationHandler) error\n\nDefinition Handler 存在优先级,优先级高的 Handler 先执行。并且执行之后会返回 goon,用来确定是否需要执行下一个 Handler。\n"},"concepts/error.html":{"url":"concepts/error.html","title":"错误包","keywords":"","body":"错误包\n包路径: github.com/caicloud/nirvana/errors\nError 介绍\n在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在 golang 中,错误需要实现 error 接口。即:\ntype error interface {\n Error() string\n}\n\n这种形式的 error 接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此 Nirvana 对于这种错误,都会以 500 Internal Server Error 的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。\n于是 Nirvana 提供了一个新的接口:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\n在业务函数中,仍然以 error 的形式返回错误。但是框架会检查返回的错误是否实现了 Error 接口。如果实现了,就会以 Code() 的返回值作为 HTTP 状态码,Message() 的返回值作为数据返回。\nerrors 包\n为了方便使用,Nirvana 提供了 errors 包用于生成 error。创建 error 的方式有两种:\n\n方法一\n\nvar somethingNotCorrect = errors.BadRequest.Build(\"ProjectName:ModuleName:SomethingNotCorrect\", \"${name} is not correct\")\n\nfunc SomeFunction() error {\n // Do something\n return somethingNotCorrect.Error(something.Name)\n}\n\n\n方法二\n\nfunc SomeFunction() error {\n return errors.BadRequest.Error(\"${name} is not correct\", something.Name)\n}\n\n这两种方法都可以创建 error,但是第一种方法比第二种多出更多特性:\n\n第一种方法支持使用 somethingNotCorrect.Derived(err) 的形式判断一个 err 是否由这个错误工厂生成。\n第一种方法带有 Reason,方便客户端判断错误类型。\n\n因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。\nerror 的 Reason\n在实际的业务中,HTTP 状态码并不足以表达业务中繁复的错误。因此我们将 HTTP 状态码视为错误大类(比如 NotFound 表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。\n这样做有两个优势:\n\n通过 HTTP 状态码即可大致判断一个错误的行为\n通过具体错误的 Reason 来唯一确定一个错误\n\n在常见的商业 API 中,我们也经常看到使用数字 ID 来标志的错误。但是数字 ID 的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的 ID,也就是 Reason。\n我们建议 Reason 的格式满足:\n项目名[:模块名]:错误名\n国际化\n使用 errors 包生成的错误会记录每个占位符的名称和值,保存在 data 字段中,可以在客户端使用 data 里的值进行文本国际化。\n使用范例\n在业务函数中使用 errors:\n\nvar messageNotExist = errors.NotFound.Build(\"MyProject:Message:MessageNotExist\", \"there is no message with id ${id}\")\n\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n if id > 100 {\n return nil, messageNotExist.Error(id)\n }\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n编译运行后可以得到结果:\n访问 curl http://localhost:8080/apis/v1/messages/100,即可得到一个 200 的响应,响应体为:\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n访问 curl http://localhost:8080/apis/v1/messages/101,即可得到一个 404 的响应,响应体为:\n{\"reason\":\"MyProject:Message:MessageNotExist\",\"message\":\"there is no message with id 101\",\"data\":{\"id\":\"101\"}}\n"},"concepts/method.html":{"url":"concepts/method.html","title":"方法包","keywords":"","body":"方法包\n包路径: github.com/caicloud/nirvana/definition/method\n在 Nirvana 中,业务函数是 API 请求的 Handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。\n为了保证业务与 API 定义的无关性,Nirvana 提供了 method 包,用于分离实例的创建和 API 定义。\nAPI 定义:\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: method.Get(&message.Container{}, \"ListMessages\"),\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n业务方法:\n// Container contains example title and content of messages.\ntype Container struct {\n Title string\n Content string\n}\n\n// NewContainer creates Container\nfunc NewContainer(title, content string) *Container {\n return &Container{title, content}\n}\n\n// ListMessages returns all messages.\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \nmain.go 中创建实例并通过 Put() 函数放到方法容器中(需要在服务启动之前完成):\nmethod.Put(message.NewContainer(\"Method Example\", \"Method Content\"))\n\n然后编译运行,访问 http://localhost:8080/apis/v1/messages 即可得到返回结果:\n[{\"id\":0,\"title\":\"Method Example 0\",\"content\":\"Method Content 0\"},{\"id\":1,\"title\":\"Method Example 1\",\"content\":\"Method Content 1\"},{\"id\":2,\"title\":\"Method Example 2\",\"content\":\"Method Content 2\"},{\"id\":3,\"title\":\"Method Example 3\",\"content\":\"Method Content 3\"},{\"id\":4,\"title\":\"Method Example 4\",\"content\":\"Method Content 4\"},{\"id\":5,\"title\":\"Method Example 5\",\"content\":\"Method Content 5\"},{\"id\":6,\"title\":\"Method Example 6\",\"content\":\"Method Content 6\"},{\"id\":7,\"title\":\"Method Example 7\",\"content\":\"Method Content 7\"},{\"id\":8,\"title\":\"Method Example 8\",\"content\":\"Method Content 8\"},{\"id\":9,\"title\":\"Method Example 9\",\"content\":\"Method Content 9\"}]\nmethod 包介绍\nmethod 包是一个全局实例容器,每种类型对应一个实例。\n具体实例类型\n使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的 *message.Container 实例。\n其中 Put(ins insterface{}) 函数用于将一个实例放置到全局容器中,形成 类型-实例 的对应关系。\nGet(typIns interface{}, method string) 用于生成一个匿名函数,生成的函数的签名没有方法的 receiver 部分,例如:\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error)\n生成匿名函数:\nfunc (ctx context.Context, count int) ([]Message, error)\n但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。\n这就是 Get() 函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会 panic。\n注意,Get() 函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说 &Container{} 和 (*Container)(nil) 是一样的。\n接口实例类型\n除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。\n设置接口实例:\nmethod.PutInterface((*ArbitraryInterface)(nil), instance)\n\n获取接口实例:\nmethod.Get((*ArbitraryInterface)(nil), \"MethodName\")\n\n"},"concepts/configurer.html":{"url":"concepts/configurer.html","title":"配置器机制","keywords":"","body":"配置器机制\n包路径: github.com/caicloud/nirvana\nNirvana 在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。\nNirvana 的 Config 实现了 Configurer 机制,用于单独配置每一项信息:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config {\n ...\n}\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\nNirvana 提供的 Configurers\nIP(ip string) Configurer\n设置监听的 IP 地址。\nPort(port uint16) Configurer\n设置监听的端口。\nTLS(certFile, keyFile string) Configurer\n设置 TLS 证书和密钥。\nLogger(logger log.Logger) Configurer\n设置 Server 在运行过程中使用的 Logger,用于输出错误。\nFilter(filters ...service.Filter) Configurer\n添加 Filter。\nModifier(modifiers ...service.DefinitionModifier) Configurer\n添加 Modifier。\nDescriptor(descriptors ...definition.Descriptor) Configurer\n添加 API 描述。所有的 API 都通过这个 Configurer 添加到 Nirvana 的 Server 里。\n"},"concepts/plugin.html":{"url":"concepts/plugin.html","title":"插件机制","keywords":"","body":"插件机制\nNirvana 的 Config 除了使用 Configurer 配置基本信息以外,还提供了插件机制。\n插件接口:\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n插件实现了这个接口之后,即可通过 nirvana 包提供的方法进行注册:\nfunc RegisterConfigInstaller(ci ConfigInstaller)\n\n一般情况下,插件应该通过插件 package 的 init() 进行注册。然后提供相应的 Configurer 在 Nirvana 的 Config 中添加插件配置。\nPlugin Framework\n一个基本的插件框架如下:\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\n"},"concepts/clients.html":{"url":"concepts/clients.html","title":"多客户端整合","keywords":"","body":"多客户端整合\n默认情况下,我们会为每个服务生成如下结构的客户端:\nclient\n├── client.go\n├── v1\n│ ├── client.go\n│ └── types.go\n└── v2\n\n在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:\nclientset\n├── svca\n│ ├── client.go\n│ ├── v1\n│ │ ├── client.go\n│ │ └── types.go\n│ └── v2\n└── svcb\n ├── client.go\n ├── v1\n │ ├── client.go\n │ └── types.go\n └── v2\n整合客户端\n为了演示这个过程,我们逐步构建这个项目。\n创建项目\n首先创建 clientset 项目,用于保存所有服务的客户端:\n$ cd $GOPATH/src/\n$ mkdir clientset\n然后创建两个服务项目(仅用于演示):\n$ nirvana init svca\n$ nirvana init svcb\n即创建了 svca 和 svcb 两个服务项目。\n生成客户端\n生成 svca 的客户端:\n$ cd $GOPATH/src/svca\n$ nirvana client --output ../clientset/svca\n生成 svcb 的客户端:\n$ cd $GOPATH/src/svcb\n$ nirvana client --output ../clientset/svcb\n此时 clientset 的项目结构如下:\nclientset\n├── svca\n│ ├── client.go\n│ └── v1\n│ ├── client.go\n│ └── types.go\n└── svcb\n ├── client.go\n └── v1\n ├── client.go\n └── types.go\n这样所有客户端都在一个项目中,不需要依赖其他服务项目。\n统一网关访问\n在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。\n创建 ClientSet\n在 clientset 中创建 clientset.go:\n$ cd $GOPATH/src/clientset\n$ touch clientset.go\nclientset.go 代码如下:\npackage clientset\n\nimport (\n svca \"clientset/svca\"\n svcb \"clientset/svcb\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a clientset.\ntype Interface interface {\n // SvcA returns a client for svc a.\n SvcA() svca.Interface\n // SvcB returns a client for svc b.\n SvcB() svcb.Interface\n}\n\n// ClientSet contains multiple clients.\ntype ClientSet struct {\n svcA svca.Interface\n svcB svcb.Interface\n}\n\n// NewClientSet creates a new client set.\nfunc NewClientSet(cfg *rest.Config) (Interface, error) {\n c := &ClientSet{}\n var err error\n\n c.svcA, err = svca.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n c.svcB, err = svcb.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClientSet creates a new client set or panic if an error occurs.\nfunc MustNewClientSet(cfg *rest.Config) Interface {\n c, err := NewClientSet(cfg)\n if err != nil {\n panic(err)\n }\n return c\n}\n\n// SvcA returns a client for svc a.\nfunc (c *ClientSet) SvcA() svca.Interface {\n return c.svcA\n}\n\n// SvcB returns a client for svc b.\nfunc (c *ClientSet) SvcB() svcb.Interface {\n return c.svcB\n}\n\n使用 ClientSet\nClientSet 的使用方法和普通 Client 没有太大区别:\nfunc main() {\n cli := clientset.MustNewClientSet(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.SvcA().V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n"},"plugins/logger.html":{"url":"plugins/logger.html","title":"系统日志插件","keywords":"","body":"系统日志插件\n包路径: github.com/caicloud/nirvana/plugins/logger\n系统日志插件是一个伪插件。这个插件本身没有按照 Plugin Framework 编写,只是为了通过 config 包的 Command 暴露 Flag。\n这个插件暴露三个选项:\n// Option contains basic configurations of logger.\ntype Option struct {\n // Debug is logger level.\n Debug bool `desc:\"Debug mode. Output all logs\"`\n // Level is logger level.\n Level int32 `desc:\"Log level. This field is no sense if debug is enabled\"`\n // OverrideGlobal modifies nirvana global logger.\n OverrideGlobal bool `desc:\"Override global logger\"`\n}\n启用 Debug 模式后,Level 就无效。如果 OverrideGlobal 为 true,那么除了设置当前 Server 的 logger 以外,还会设置全局的 logger。\n"},"plugins/reqlog.html":{"url":"plugins/reqlog.html","title":"请求日志插件","keywords":"","body":"请求日志插件\n包路径: github.com/caicloud/nirvana/plugins/reqlog\n请求日志插件会添加一个在 / 上的中间件,用于打印所有路由匹配成功的请求的日志。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nDefault() nirvana.Configurer\n启用插件并使用默认配置\n\n\nLogger(l log.Logger) nirvana.Configurer\n设置 Logger\n\n\nDoubleLog(enable bool) nirvana.Configurer\n启用或关闭双重日志,即请求开始一条日志,请求结束一条日志\n\n\nSourceAddr(enable bool) nirvana.Configurer\n启用或关闭显示源地址\n\n\nRequestID(enable bool) nirvana.Configurer\n启用或关闭显示请求 ID \n\n\nRequestIDKey(key string) nirvana.Configurer\n设置请求 ID 的 key,默认为 X-Request-ID\n\n\n\n"},"plugins/metrics.html":{"url":"plugins/metrics.html","title":"监控指标插件","keywords":"","body":"监控指标插件\n包路径: github.com/caicloud/nirvana/plugins/metrics\n监控指标插件基于 Prometheus,提供了一个 API 用于暴露服务端指标。\n启用插件后,可以直接向 prometheus 包注册指标。采集端可以通过 /metrics 采集指标数据。\nAPI 路径 /metrics 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /metrics\n\n\nNamespace(ns string) nirvana.Configurer\n设置 Prometheus Namespace\n\n\n\n"},"plugins/tracing.html":{"url":"plugins/tracing.html","title":"请求追踪插件","keywords":"","body":"请求追踪插件\n包路径: github.com/caicloud/nirvana/plugins/tracing\n请求追踪插件基于 OpenTracing 接口实现了请求跟踪机制,会在 / 上添加一个中间件用于提取 Tracing 信息。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nCustomTracer(tracer opentracing.Tracer) nirvana.Configurer\n使用自定义的 Tracer\n\n\nDefaultTracer(serviceName string, agentHostPort string) nirvana.Configurer\n使用默认的 Tracer\n\n\nAddHook(hook Hook) nirvana.Configurer\n设置请求 Hook\n\n\n\nHook 接口:\n// Hook allows you to custom information for span.\ntype Hook interface {\n // Exec before request processing\n Before(ctx context.Context, span opentracing.Span)\n // Exec after request processing\n After(ctx context.Context, span opentracing.Span)\n}\n\n"},"plugins/profiling.html":{"url":"plugins/profiling.html","title":"性能分析插件","keywords":"","body":"性能分析插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n性能分析插件添加与 net/http/pprof 一致的 API,用于取得服务运行时信息。\n默认情况下,插件会添加四个 Descriptor:\n\n/debug/pprof\n/debug/pprof/profile\n/debug/pprof/symbol\n/debug/pprof/trace\n\n前缀路径 /debug/pprof 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置路径前缀,默认值为 /debug/pprof\n\n\n\n"},"plugins/version.html":{"url":"plugins/version.html","title":"版本信息插件","keywords":"","body":"版本信息插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n版本信息插件提供一个 API 返回服务的版本信息。API 路径默认为 /version。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /version\n\n\nName(name string) nirvana.Configurer\n设置服务名称\n\n\nVersion(version string) nirvana.Configurer\n设置服务版本号\n\n\nHash(hash string) nirvana.Configurer\n设置服务 hash 值。一般情况下可以设置为代码的 commit 值\n\n\nDescription(description string) nirvana.Configurer\n设置服务的描述\n\n\n\n"},"plugins/healthcheck.html":{"url":"plugins/healthcheck.html","title":"健康检查插件","keywords":"","body":"健康检查插件\n包路径: github.com/caicloud/nirvana/plugins/healthcheck\n健康检查插件提供一个 API 返回服务当前是否健康。API 默认路径为 /healthz。\n插件提供了一个函数接口:\ntype HealthChecker func(ctx context.Context) error\n如果服务正常,则 checker 应该返回 nil。如果服务异常,则返回相应的错误。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /healthz\n\n\nChecker(checker HealthChecker) nirvana.Configurer\n设置 Checker 用于检查服务是否正常。\n\n\n\n"},"topics/start.html":{"url":"topics/start.html","title":"准备工作","keywords":"","body":"准备工作\n开发工具介绍\n\ngolang:https://golang.org/dl/\ndep:https://github.com/golang/dep\ngometalinter:https://github.com/alecthomas/gometalinter\n\n一般情况下,我们使用最新版本的 golang 进行开发,但是需要保证两个 golang 大版本的兼容性。即使用 1.10.x 开发的情况下,需要保持对 1.9.x 的兼容性。\n另外 Nirvana 只使用 dep 进行依赖管理,不要使用其他依赖管理工具对 vendor 进行任何更新操作。并且所有的依赖需要放置在根目录的 vendor 中,不能在任何子目录下使用 vendor。\n除了常规的 go test 测试以外,还需要使用 gometalinter 进行代码检查,gometalinter 的配置文件在根目录的 config.json 中。\n工作流程\n在 githuh 上 Fork Nirvana 到自己的账户下,然后下载源码到本地开发目录中:\n$ cd $GOPATH/src\n$ mkdir -p github.com/caicloud/\n$ cd github.com/caicloud/\n$ git clone git@github.com:{your account}/nirvana.git\n在完成修改并提交到自己的 repo 之后,通过 github PR 的形式向 Nirvana 提交代码。\n框架设计概览\nNirvana 框架的设计核心思想是:隔离 API 定义和业务逻辑实现\n也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。\nNirvana 包之间的依赖关系:\n\n\n其中 log 与 errors 是基础包,分别负责日志基础接口和错误处理基础接口。\ndefinition 包包含 Nirvana 框架的 API 定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。\ndefinition/method 帮助用户把实例方法转换为 definition 函数。请参考 方法包。\noperators 中包含了两个组件功能实现了 converters 和 validators,用于 API 参数的类型转换和数据验证。\nservice/router 包实现了基于前缀树的路由和中间件功能。\nservice 包实现了框架 API 路由和处理的所有功能。\nnirvana 包实现了 API Server 以及插件化功能。\nplugins 中包含了许多实现了 nirvana 插件接口的插件。\nconfig 包实现了 Nirvana Command 功能,并提供了从 flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用 Nirvana 的入口包。\nutils 包包含多个工具用于 API 生成,客户端代码生成,项目结构生成。\ncmd/nirvana 是 Nirvana 的主要命令,利用 utils 包帮助用户快速构建项目。\n\n在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。\n"},"topics/log.html":{"url":"topics/log.html","title":"log","keywords":"","body":"log 包\nlog 包提供了一组基础的日志 API 和一个使用了 stderr 进行输出的标准实现。\n标准接口如下:\n// Level is log level of verboser. We strongly recommend you to\n// follow the rules:\n// 1. Use LevelDebug for debug log.\n// 2. Use 1 for important but not frequent log.\n// 3. Use 2 for important and frequent log.\n// 4. Use 3 for not important and not frequent log.\n// 5. Use 4 for not important but frequent log.\n// 6. Use [5, LevelDebug) only if you want to custom log levels.\ntype Level int32\n\nconst (\n // LevelDebug is for debug info.\n LevelDebug Level = math.MaxInt32\n)\n\n// Severity has four classes to correspond with log situation.\ntype Severity string\n\nconst (\n // SeverityInfo is for usual log.\n SeverityInfo Severity = \"INFO\"\n // SeverityWarning is for warning.\n SeverityWarning Severity = \"WARN\"\n // SeverityError is for error.\n SeverityError Severity = \"ERROR\"\n // SeverityFatal is for panic error. The severity means that\n // a logger will output the error and exit immediately.\n // It can't be recovered.\n SeverityFatal Severity = \"FATAL\"\n)\n\n// Verboser is an interface type that implements Info(f|ln) .\n// See the documentation of V for more information.\ntype Verboser interface {\n // Info logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Info(...interface{})\n // Infof logs to the INFO log.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Infof(string, ...interface{})\n // Infoln logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Infoln(...interface{})\n}\n\n// Logger provides a set of methods to output log.\ntype Logger interface {\n Verboser\n // V reports whether verbosity at the call site is at least the requested level.\n // The returned value is a Verboser, which implements Info, Infof\n // and Infoln. These methods will write to the Info log if called.\n V(Level) Verboser\n // Warning logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Warning(...interface{})\n // Warningf logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Warningf(string, ...interface{})\n // Warningln logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Warningln(...interface{})\n // Error logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Error(...interface{})\n // Errorf logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Errorf(string, ...interface{})\n // Errorln logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Errorln(...interface{})\n // Fatal logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Fatal(...interface{})\n // Fatalf logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Fatalf(string, ...interface{})\n // Fatalln logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Fatalln(...interface{})\n // Clone clones current logger with new wrapper.\n // A positive wrapper indicates how many wrappers outside the logger.\n // A negative wrapper indicates how many wrappers should be stripped.\n Clone(wrapper int) Logger\n}\n\n这套日志 API 参考了 glog 的 golang API,并且允许用户接入其他日志系统。\n在实现一个自定义的 logger 之前,需要知道以下几件事情:\n\nlog 包有一个默认的 logger,使用的是 StdLogger。可以通过 SetDefaultLogger() 变更。\n对于不需要输出日志的场景,使用 SilentLogger 的实例而不是 nil.\n正确实现 logger 的 Clone 方法。Clone 方法用于在对 logger 进行包装的时候,获取正确层级的调用栈信息。\n在 Fatal* 时候,使用 os.Exit(1) 进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。\n\n"},"topics/errors.html":{"url":"topics/errors.html","title":"errors","keywords":"","body":"errors 包\nerrors 包类似于标准库的 errors 包,但是提供了方法用于生成格式化的错误和错误判断。\nerrors 包中存在三个概念,分别是 Builder,Factory 和 Error。其中 Builder 用于构建 Factory,Factory 则用于构建特定的 Error。\nFactory 接口如下:\n// Factory can create error from a fixed format.\ntype Factory interface {\n // Error generates an error from v.\n Error(v ...interface{}) error\n // Derived checks if an error was derived from current factory.\n Derived(e error) bool\n}\n\nError 接口如下(这个接口并没有显式定义在 errors 包中):\ntype Error interface {\n error\n Code() int\n Message() interface{}\n}\n\n首先看 Facotry 的两个方法:\n\nError 用于传入参数输出一个真正的错误。\nDerived 则用于判断一个错误是否是由当前的 Factory 生成。\n这样就能够非常方便的错误创建和错误判断了。\n\nFactory 是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同 string format,比如 \"${user} is not found\")。\n通常情况下,有 Factory 和 Error 就足够了。但是为了让错误能够以 HTTP API 的形式向客户端返回,我们还需要给 Factory 加上一些附加属性,用来表示返回的错误码等信息。\n因此在 Factory 之上,构建了 Builder 接口,用于创建具有一类特征的 Factory(比如一类表示 NotFound 的错误)。\nBuilder 接口如下:\n// Builder can build error factories and errros.\ntype Builder interface {\n // Build builds a factory to generate errors with predefined format.\n Build(reason Reason, format string) Factory\n // Error immediately creates an error without reason.\n Error(format string, v ...interface{}) error\n}\n\nBuilder 可以构建带有 reason 和 format 的 Factory。也直接提供了 Error 方法用于直接创建出 Error。\n目前 errors 包提供的 Builder 主要是以 HTTP 状态码作为基础的:\n// These factory builders is used to build error factory.\nvar (\n BadRequest = newKind(400) // RFC 7231, 6.5.1\n Unauthorized = newKind(401) // RFC 7235, 3.1\n PaymentRequired = newKind(402) // RFC 7231, 6.5.2\n Forbidden = newKind(403) // RFC 7231, 6.5.3\n NotFound = newKind(404) // RFC 7231, 6.5.4\n MethodNotAllowed = newKind(405) // RFC 7231, 6.5.5\n NotAcceptable = newKind(406) // RFC 7231, 6.5.6\n ProxyAuthRequired = newKind(407) // RFC 7235, 3.2\n RequestTimeout = newKind(408) // RFC 7231, 6.5.7\n Conflict = newKind(409) // RFC 7231, 6.5.8\n Gone = newKind(410) // RFC 7231, 6.5.9\n LengthRequired = newKind(411) // RFC 7231, 6.5.10\n PreconditionFailed = newKind(412) // RFC 7232, 4.2\n RequestEntityTooLarge = newKind(413) // RFC 7231, 6.5.11\n RequestURITooLong = newKind(414) // RFC 7231, 6.5.12\n UnsupportedMediaType = newKind(415) // RFC 7231, 6.5.13\n RequestedRangeNotSatisfiable = newKind(416) // RFC 7233, 4.4\n ExpectationFailed = newKind(417) // RFC 7231, 6.5.14\n Teapot = newKind(418) // RFC 7168, 2.3.3\n UnprocessableEntity = newKind(422) // RFC 4918, 11.2\n Locked = newKind(423) // RFC 4918, 11.3\n FailedDependency = newKind(424) // RFC 4918, 11.4\n UpgradeRequired = newKind(426) // RFC 7231, 6.5.15\n PreconditionRequired = newKind(428) // RFC 6585, 3\n TooManyRequests = newKind(429) // RFC 6585, 4\n RequestHeaderFieldsTooLarge = newKind(431) // RFC 6585, 5\n UnavailableForLegalReasons = newKind(451) // RFC 7725, 3\n\n InternalServerError = newKind(500) // RFC 7231, 6.6.1\n NotImplemented = newKind(501) // RFC 7231, 6.6.2\n BadGateway = newKind(502) // RFC 7231, 6.6.3\n ServiceUnavailable = newKind(503) // RFC 7231, 6.6.4\n GatewayTimeout = newKind(504) // RFC 7231, 6.6.5\n HTTPVersionNotSupported = newKind(505) // RFC 7231, 6.6.6\n VariantAlsoNegotiates = newKind(506) // RFC 2295, 8.1\n InsufficientStorage = newKind(507) // RFC 4918, 11.5\n LoopDetected = newKind(508) // RFC 5842, 7.2\n NotExtended = newKind(510) // RFC 2774, 7\n NetworkAuthenticationRequired = newKind(511) // RFC 6585, 6\n)\n\n这个包方便了用户创建能够被 Nirvana 识别的错误,但是如果业务逻辑中如果不希望引入对 errors 包的依赖,可以自行实现错误包,只要产出的错误符合 Error 接口即可。\n"},"topics/definition.html":{"url":"topics/definition.html","title":"definition","keywords":"","body":"definition 包\ndefinition 包包含了 Nirvana 的 API 定义,用于描述 API 的参数与返回值。\n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n// Method is an alternative of HTTP method. It's more clearer than HTTP method.\n// A definition method binds a certain HTTP method and a success status code.\ntype Method string\n\nconst (\n // List binds to http.MethodGet and code http.StatusOK(200).\n List Method = \"List\"\n // Get binds to http.MethodGet and code http.StatusOK(200).\n Get Method = \"Get\"\n // Create binds to http.MethodPost and code http.StatusCreated(201).\n Create Method = \"Create\"\n // Update binds to http.MethodPut and code http.StatusOK(200).\n Update Method = \"Update\"\n // Patch binds to http.MethodPatch and code http.StatusOK(200).\n Patch Method = \"Patch\"\n // Delete binds to http.MethodDelete and code http.StatusNoContent(204).\n Delete Method = \"Delete\"\n // AsyncCreate binds to http.MethodPost and code http.StatusAccepted(202).\n AsyncCreate Method = \"AsyncCreate\"\n // AsyncUpdate binds to http.MethodPut and code http.StatusAccepted(202).\n AsyncUpdate Method = \"AsyncUpdate\"\n // AsyncPatch binds to http.MethodPatch and code http.StatusAccepted(202).\n AsyncPatch Method = \"AsyncPatch\"\n // AsyncDelete binds to http.MethodDelete and code http.StatusAccepted(202).\n AsyncDelete Method = \"AsyncDelete\"\n)\n\n// Source indicates which place a value is from.\ntype Source string\n\nconst (\n // Path means value is from URL path.\n Path Source = \"Path\"\n // Query means value is from URL query string.\n Query Source = \"Query\"\n // Header means value is from request header.\n Header Source = \"Header\"\n // Form means value is from request body and content type must be\n // \"application/x-www-form-urlencoded\" and \"multipart/form-data\".\n Form Source = \"Form\"\n // File means value is from request body and content type must be\n // \"multipart/form-data\".\n File Source = \"File\"\n // Body means value is from request body.\n Body Source = \"Body\"\n // Auto identifies a struct and generate field values by field tag.\n //\n // Tag name is \"source\". Its value format is \"Source,Name\".\n //\n // ex.\n // type Example struct {\n // Start int `source:\"Query,start\"`\n // ContentType string `source:\"Header,Content-Type\"`\n // }\n Auto Source = \"Auto\"\n // Prefab means value is from a prefab generator.\n // A prefab combines data to generate value.\n Prefab Source = \"Prefab\"\n)\n\n// Destination indicates the target type to place function results.\ntype Destination string\n\nconst (\n // Meta means result will be set into the header of response.\n Meta Destination = \"Meta\"\n // Data means result will be set into the body of response.\n Data Destination = \"Data\"\n // Error means the result is an error and should be treated specially.\n // An error occurs indicates that there is no data to return. So the\n // error should be treated as data and be writed back to client.\n Error Destination = \"Error\"\n)\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Instance is a custom data.\n Instance interface{}\n}\n\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Summary is a one-line brief description of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nDescriptor 结构体包含具有如下含义的字段:\n\nAPI 路径\n可被 Middlewares,Definitions,Children 继承的字段\n其他与 API 路径同等级别的字段\n\n如果希望对 Descriptor 进行扩展,需要遵守上面这些规则。\nDefinition 结构体包含了一个具体的 API 定义:\n\nAPI 方法,这个方法是一个抽象方法,用于描述一种行为(比如 Create)。\nAPI 参数和返回值定义\n其他与具体 API 同等级别的字段\n\n如果希望对 Definition 进行扩展,需要遵守上面这些规则。\nParameter 和 Result 分别对应 API 的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。\n在上面的定义中,存在两个额外功能:\n\n在 Descriptor 中提供了 Middleware\n在 Parameter 和 Result 中,提供了 Operator\n\n其中 Middleware 提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而 Operator 则针对单个的业务参数和返回值,可以对值进行验证和修改。\ndefinition 包除了包含对 API 的定义以外,还提供了一些函数,帮助快速构建 Definitions 和 Operators:\n// MIME types\nconst (\n // acceptTypeAll indicates a accept type from http request.\n // It means client can receive any content.\n // Request content type in header \"Content-Type\" must not set to \"*/*\".\n // It only can exist in request header \"Accept\".\n // In most time, it locate at the last element of \"Accept\".\n // It's default value if client have not set \"Accept\" header.\n MIMEAll = \"*/*\"\n MIMENone = \"\"\n MIMEText = \"text/plain\"\n MIMEJSON = \"application/json\"\n MIMEXML = \"application/xml\"\n MIMEOctetStream = \"application/octet-stream\"\n MIMEURLEncoded = \"application/x-www-form-urlencoded\"\n MIMEFormData = \"multipart/form-data\"\n)\n\n// OperatorFunc creates operator by function.\n// function must has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to identify field.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc OperatorFunc(kind string, f interface{}) Operator\n\n"},"topics/method.html":{"url":"topics/method.html","title":"definition/method","keywords":"","body":"method 包\n在 definition 包中,可以看到 Definition.Function 必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method 包提供了一个实例方法容器,帮助用户把实例方法转换为函数。\n容器如下:\n// Container contains instances and mappings.\ntype Container struct {\n ...\n}\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc (c *Container) Put(instance interface{})\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc (c *Container) PutInterface(iface interface{}, instance interface{})\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc (c *Container) Get(instance interface{}, method string) interface{}\n\n这个实例方法容器分离了方法的 Get 和 Put 过程。也就是可以在声明 API 时,使用 Get 获取某个实例的方法,之后再在服务启动逻辑里 Put 真正的实例,即 Get 可以在 Put 之前使用。\n这个主要是利用了 golang 的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。\nmethod 包还提供了一个全局的 Container:\nvar defaultContainer = NewContainer()\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc Put(instance interface{}) {\n defaultContainer.Put(instance)\n}\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc PutInterface(iface interface{}, instance interface{}) {\n defaultContainer.PutInterface(iface, instance)\n}\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc Get(instance interface{}, method string) interface{} {\n return defaultContainer.Get(instance, method)\n}\n\n一般情况下,用户会使用这个全局的容器。\n"},"topics/converter.html":{"url":"topics/converter.html","title":"operators/converter","keywords":"","body":"converter 包\nconverter 包提供了一个 Converter 实现,帮助用户快速构建名为 converter 的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `converter`.\nconst OperatorKind = \"converter\"\n\n// Converter describes a converter.\ntype Converter interface {\n definition.Operator\n}\n\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter {\n return definition.OperatorFunc(OperatorKind, f)\n}\n\n这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为 Operator。\n"},"topics/validator.html":{"url":"topics/validator.html","title":"operators/validator","keywords":"","body":"validator 包\nvalidator 包提供了一系列的方法帮助用户快速生成用于校验参数的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `validator`.\nconst OperatorKind = \"validator\"\n\n// Category distinguishs validation type based on different Validator implementation.\ntype Category string\n\nconst (\n // CategoryVar indicates that the validator can validate basic built-in types.\n // Types: string, int*, uint*, bool.\n CategoryVar Category = \"Var\"\n // CategoryStruct indicates that the validator can validate struct.\n CategoryStruct Category = \"Struct\"\n // CategoryCustom indicates the validator is a custom validator.\n CategoryCustom Category = \"Custom\"\n)\n\n// Validator describes an interface for all validator.\ntype Validator interface {\n definition.Operator\n // Category indicates validator type.\n Category() Category\n // Tag returns tag.\n Tag() string\n // Description returns description of current validator.\n Description() string\n}\n\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n// Struct returns an operator to validate a structs exposed fields, and automatically validates nested structs, unless otherwise specified\n// and also allows passing of context.Context for contextual validation information.\nfunc Struct(instance interface{}) Validator\n\n// String creates validator for string type.\nfunc String(tag string) Validator\n\n// Int creates validator for int type.\nfunc Int(tag string) Validator\n\n// Int64 creates validator for int64 type.\nfunc Int64(tag string) Validator\n\n// Int32 creates validator for int32 type.\nfunc Int32(tag string) Validator\n\n// Int16 creates validator for int16 type.\nfunc Int16(tag string) Validator\n\n// Int8 creates validator for int8 type.\nfunc Int8(tag string) Validator\n\n// Byte creates validator for byte type.\nfunc Byte(tag string) Validator\n\n// Uint creates validator for uint type.\nfunc Uint(tag string) Validator\n\n// Uint64 creates validator for uint64 type.\nfunc Uint64(tag string) Validator\n\n// Uint32 creates validator for uint32 type.\nfunc Uint32(tag string) Validator\n\n// Uint16 creates validator for uint16 type.\nfunc Uint16(tag string) Validator\n\n// Uint8 creates validator for uint8 type.\nfunc Uint8(tag string) Validator\n\n// Bool creates validator for bool type.\nfunc Bool(tag string) Validator\n\n目前支持三种类型的验证,分别对应 golang 基础类型,结构体类型和自定义类型。目前验证方法基于 gopkg.in/go-playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。\n"},"topics/router.html":{"url":"topics/router.html","title":"service/router","keywords":"","body":"router 包\nrouter 包实现了基于前缀树的路由,并提供了三种类型的路由节点:\n\n字符串类型节点\n正则类型节点(包括一个全匹配类型节点)\n剩余路径类型节点\n\n字符串类型节点:\n// stringNode describes a string router node.\ntype stringNode struct {\n handler\n children\n // prefix is the fixed string to match path.\n prefix string\n}\n\n字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与 prefix 完全匹配。\n正则类型节点:\n// index contains the key and it's index of the submatches.\ntype index struct {\n // Key is the name for the value.\n Key string\n // Pos is the index of value in submatches.\n Pos int\n}\n\n// regexpNode contains information for matching a regexp segment.\ntype regexpNode struct {\n handler\n children\n // indices contains all positions to get values from submatches.\n indices []index\n // exp is the regular expression.\n exp string\n // regexp is a regexp instance to match.\n regexp *regexp.Regexp\n}\n\n正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。\n全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的 .*:\n// fullMatchRegexpNode is an optimizing of RegexpNode.\ntype fullMatchRegexpNode struct {\n handler\n children\n // key is the name for the only value.\n key string\n}\n\n这是对正则表达式的一个常用特例的优化,快速进行全匹配。\n正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个 / 之前。\n剩余路径类型节点:\n// pathNode matches all rest path.\ntype pathNode struct {\n handler\n // key is the key for the rest path.\n key string\n}\n\n这个节点匹配剩余所有路径。\n下面用一个例子来说明这几个节点:\nAPI Path: /apis/v1/{regexp:[a-z]{1,2}}/{fullmatch}/{path:*}\nMatched Path: /apis/v1/ab/something/the/rest/path\nGenerated Nodes:\n String Node: /apis/v1/ -> /apis/v1/\n Regexp Node: regexp:[a-z]{1,2} -> ab\n String Node: / -> /\n Full Match Node: fullmatch:.* -> something\n String Node: / -> /\n Path Node: * -> the/rest/path\n\n一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。\n在上面的路径节点中,每个节点都可以绑定一个 Inspector:\n// Inspector can select an executor to execute.\ntype Inspector interface {\n // Inspect finds a valid executor to execute target context.\n // It returns an error if it can't find a valid executor.\n Inspect(context.Context) (Executor, error)\n}\n\n// Executor executs with a context.\ntype Executor interface {\n // Execute executes with context.\n Execute(context.Context) error\n}\n\n路径匹配完成后,会调用匹配链的最后一个节点的 Inspector 来生成一个能够处理当前的路由上下文的 Executor。Inspector 如果能返回一个 Executor,router 会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个 Executor。如果不能返回 Executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。\n中间件接口如下:\n// RoutingChain contains the call chain of middlewares and executor.\ntype RoutingChain interface {\n // Continue continues to execute the next middleware or executor.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call RoutingChain.Continue() and pass the context.\ntype Middleware func(context.Context, RoutingChain) error\n\n对于中间件而言,处理完当前的任务之后只需要调用 RoutingChain 将 Context 通过 Continue 传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用 Continue 实际上是调用的 Executor,因此所有中间件的 Continue 执行完成之后,请求也处理完成了。\n注:这个包里所有的接口都不会被用户直接使用,用户只能通过 definition 包进行 API 定义,然后由 service 包进行路由构建和匹配。\n"},"topics/service.html":{"url":"topics/service.html","title":"service","keywords":"","body":"service 包\nservice 包实现了 Nirvana 的 API 处理框架:\n Service.ServeHTTP()\n ----------------------\n ↓ ↑\n|-----Filters------| ↑\n ↓ ↑\n|---Router Match---| ↑\n ↓ ↑\n|-------------Middlewares------------|\n ↓ ↑\n|-------------Executor---------------|\n ↓ ↑\n|-ParameterGenerators-|-DestinationHandlers-|\n ↓ ↑\n|------------User Function-----------|\nservice 包的入口是 Builder:\n// Builder builds service.\ntype Builder interface {\n // Logger returns logger of builder.\n Logger() log.Logger\n // SetLogger sets logger to server.\n SetLogger(logger log.Logger)\n // Modifier returns modifier of builder.\n Modifier() DefinitionModifier\n // SetModifier sets definition modifier.\n SetModifier(m DefinitionModifier)\n // Filters returns all request filters.\n Filters() []Filter\n // AddFilters add filters to filter requests.\n AddFilter(filters ...Filter)\n // AddDescriptors adds descriptors to router.\n AddDescriptor(descriptors ...definition.Descriptor) error\n // Middlewares returns all router middlewares.\n Middlewares() map[string][]definition.Middleware\n // Definitions returns all definitions. If a modifier exists, it will be executed.\n Definitions() map[string][]definition.Definition\n // Build builds a service to handle request.\n Build() (Service, error)\n}\n\ntype Service interface {\n http.Handler\n}\n\n// DefinitionModifier is used in Server. It's used to modify definition.\n// If you want to add some common data into all definitions, you can write\n// a customized modifier for it.\ntype DefinitionModifier func(d *definition.Definition)\n\n\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nBuilder 构建 Service 来提供 HTTP 服务。因此 Builder 提供了多个方法用于设置生成服务需要的日志,Definition 修改器,请求过滤器,API 描述符。构建完成的 Service 实际上是一个 http.Handler,用来处理请求。\n其中 Definition 修改器用于在生成路由之前修改 API Definition。请求过滤器则是在 Service 执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。\nBuilder 还会将 API Definition 转换为路由需要的数据结构,涉及到以下内容:\n\n对应 Consumes 和 Produces 的 Consumer 和 ProducerConsumer 针对请求的 body,将数据转换为业务函数需要的数据类型(通常是结构体)。Producer 则是将业务函数的返回值转换并写入到响应的 body 中。 \n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n\n对应 Prefab 类型的 Prefab 生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。service 包里提供了一个 Context Prefab 生成器,简单的将参数里的 context 返回出去,供业务函数使用。// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n\n对应 golang 基础类型的转换器这些转换器一般是用于将请求里的 query,header 等简单字符串数据转换为 golang 的基础类型,供业务函数使用。// Converter is used to convert []string to specific type. Data must have one\n// element at least or it will panic.\ntype Converter func(ctx context.Context, data []string) (interface{}, error)\n\n\n用于封装请求的 ValueContainer这个接口是对 Request 的一次封装,方便获取对应位置的字符串数据。// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n\n用于封装响应的 ResponseWriterResponseWriter 是对 http.ResponseWriter 的一个扩展,提供了一些功能方便中间件使用。// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n\n用于合并请求和响应的 ContextHTTPContext 实现了 Context 接口,包装了请求的信息。作为路由上下文使用。// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\n\n用于生成业务函数的参数的 ParameterGeneratorParameterGenerator 是真正的参数生成器,通过调用 Consumer,Converter,Prefab 等来完成业务函数的参数生成。// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n\n用于将业务函数返回值写入 Response 的 DestinationHandlerDestinationHandler 是业务函数返回值处理器,通过调用 Producer 将返回值转换为字节写入响应中。在 DestinationHandler 中,错误是会进行特殊处理的。如果业务函数返回的错误符合 Error 接口,则会根据这个接口来生成错误码和返回数据结构。\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nconst (\n // HighPriority for error type.\n // If an error occurs, ignore meta and data.\n HighPriority int = 100\n // MediumPriority for meta type.\n MediumPriority int = 200\n // LowPriority for data type.\n LowPriority int = 300\n)\n\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n\n\n注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。\n"},"topics/nirvana.html":{"url":"topics/nirvana.html","title":"nirvana","keywords":"","body":"nirvana 包\nnirvana 包在根目录中,实现了 Nirvana Server 和插件系统。这个包放置在根目录中是因为这个包是 Nirvana 提供的用于生成 API Server 的顶级包,而且其依赖的所有包只来自 Nirvana 自身和标准库(config 包依赖了 nirvana 包和其他第三方的包,实际上是一个借助了 Nirvana 和第三方功能的扩展)。\nServer 接口如下:\n// Server is a complete API server.\n// The server contains a router to handle all requests form clients.\ntype Server interface {\n // Serve starts to listen and serve requests.\n // The method won't return except an error occurs.\n Serve() error\n // Shutdown gracefully shuts down the server without interrupting any\n // active connections.\n Shutdown(ctx context.Context) error\n // Builder create a service builder for current server. Don't use this method directly except\n // there is a special server to hold http services. After server shutdown, clean resources via\n // returned cleaner.\n // This method always returns same builder until cleaner is called. Then it will\n // returns new one.\n Builder() (builder service.Builder, cleaner func() error, err error)\n}\n\n创建 Server 需要使用 Config:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Locked checks if the config is locked.\nfunc (c *Config) Locked() bool\n\n// IP returns listenning ip.\nfunc (c *Config) IP() string\n\n// Port returns listenning port.\nfunc (c *Config) Port() uint16\n\n// Logger returns logger.\nfunc (c *Config) Logger() log.Logger\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config\n\n// Config gets external config by name. This method is for plugins.\nfunc (c *Config) Config(name string) interface{}\n\n// Set sets external config by name. This method is for plugins.\n// Set a nil config will delete it.\nfunc (c *Config) Set(name string, config interface{})\n\n// NewServer creates a nirvana server. After creation, don't modify\n// config. Also don't create another server with current config.\nfunc NewServer(c *Config) Server\n\n在 Config 中,存在一些 Server 级别的配置,这些配置是针对当前服务的。而对应的 Configurer 也在当前包中。如果需要对配置进行扩展,增强 Server 功能,则可以增加相应字段,否则应该使用插件机制增加功能。\n在 Config 中可以看到 Config 和 Set 方法,这两个方法就是提供给插件允许插件设置自身的配置的。\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的 Install 方法安装插件。\n"},"topics/config.html":{"url":"topics/config.html","title":"config","keywords":"","body":"config 包\nconfig 包利用 github.com/spf13/cobra 和 github.com/spf13/viper 实现了 Nirvana Command 和配置读取,为 Nirvana 服务启动提供了命令行支持。\nNirvanaCommand 接口如下:\n// NirvanaCommand is a nirvana command.\ntype NirvanaCommand interface {\n // EnablePlugin enables plugins.\n EnablePlugin(plugins ...Plugin) NirvanaCommand\n // AddOption will fill up options from flags/ENV/config after executing.\n // A non-empty prefix is recommended. It's used to divide option namespaces.\n AddOption(prefix string, options ...CustomOption) NirvanaCommand\n // Add adds a field by key.\n // If you don't have any struct to describe an option, you can use the method to\n // add a single field into nirvana command.\n // `pointer` must be a pointer to golang basic data type (e.g. *int, *string).\n // `key` must a config key. It's like 'nirvana.ip' and 'myconfig.name.firstName'.\n // The key will be converted to flag and env (e.g. --nirvana-ip and NIRVANA_IP).\n // If you want a short flag for the field, you can only set a one-char string.\n // `desc` describes the field.\n Add(pointer interface{}, key string, shortFlag string, desc string) NirvanaCommand\n // Execute runs nirvana server.\n Execute(descriptors ...definition.Descriptor) error\n // ExecuteWithConfig runs nirvana server from a custom config.\n ExecuteWithConfig(cfg *nirvana.Config) error\n // Command returns a command for command.\n Command(cfg *nirvana.Config) *cobra.Command\n // SetHook sets nirvana command hook.\n SetHook(hook NirvanaCommandHook)\n // Hook returns nirvana command hook.\n Hook() NirvanaCommandHook\n}\n\nNirvanaCommand 扩展了 nirvana 包的插件能力:\n// CustomOption must be a pointer to struct.\n//\n// Here is an example:\n// type Option struct {\n// FirstName string `desc:\"Desc for First Name\"`\n// Age uint16 `desc:\"Desc for Age\"`\n// }\n// The struct has two fields (with prefix example):\n// Field Flag ENV Key (In config file)\n// FirstName --example-first-name EXAMPLE_FIRST_NAME example.firstName\n// Age --example-age EXAMPLE_AGE example.age\n// When you execute command with `--help`, you can see the help doc of flags and\n// descriptions (From field tag `desc`).\n//\n// The priority is:\n// Flag > ENV > Key > The value you set in option\ntype CustomOption interface{}\n\n// Plugin is for plugins to collect configurations\ntype Plugin interface {\n // Name returns plugin name.\n Name() string\n // Configure configures nirvana config via current options.\n Configure(cfg *nirvana.Config) error\n}\nNirvana Command 要求每个插件提供一个 Option,并且实现 Plugin 接口。用户在 Comamnd 中传递 Option 来启用插件,并且将插件 Option 中的公开字段根据一定的规则(规则参考上面的注释)从 flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。\n由于 Nirvana Config 服务配置的特殊性,config 包提供了一个 Option 来表达这些配置:\n// Option contains basic configurations of nirvana.\ntype Option struct {\n // IP is the IP to listen.\n IP string `desc:\"Nirvana server listening IP\"`\n // Port is the port to listen.\n Port uint16 `desc:\"Nirvana server listening Port\"`\n // Key is private key for HTTPS.\n Key string `desc:\"TLS private key (PEM format) for HTTPS\"`\n // Cert is certificate for HTTPS.\n Cert string `desc:\"TLS certificate (PEM format) for HTTPS\"`\n}\n\n除了插件 Option 以外,config 包会从以下文件列表中读取配置文件:\n目录:\n ./\n ./config/\n {ExecutableFilePath}/\n {ExecutableFilePath}/config/\n /etc/nirvana/\n\n配置文件名:\n nirvana.yaml\n nirvana.toml\n nirvana.json\n如果读取到配置文件,那么除了使用 Option 接收配置以外,还可以通过一些帮助方法获取配置:\n// IsSet checks to see if the key has been set in any of the data locations.\n// IsSet is case-insensitive for a key\nfunc IsSet(key string) bool\n\n// Set sets the value for the key in the override regiser.\n// Set is case-insensitive for a key.\n// Will be used instead of values obtained via\n// flags, config file, ENV, default, or key/value store.\nfunc Set(key string, value interface{})\n\n// Get can retrieve any value given the key to use.\n// Get is case-insensitive for a key.\n// Get has the behavior of returning the value associated with the first\n// place from where it is set. Viper will check in the following order:\n// override, flag, env, config file, key/value store, default\n//\n// Get returns an interface. For a specific value use one of the Get____ methods.\nfunc Get(key string) interface{}\n\n// GetBool returns the value associated with the key as a bool.\nfunc GetBool(key string) bool\n\n// GetDuration returns the value associated with the key as a time.Duration.\nfunc GetDuration(key string) time.Duration\n\n// GetFloat32 returns the value associated with the key as a float32.\nfunc GetFloat32(key string) float32\n\n// GetFloat64 returns the value associated with the key as a float64.\nfunc GetFloat64(key string) float64\n\n// GetInt returns the value associated with the key as a int.\nfunc GetInt(key string) int\n\n// GetInt8 returns the value associated with the key as a int.\nfunc GetInt8(key string) int8\n\n// GetInt16 returns the value associated with the key as a int.\nfunc GetInt16(key string) int16\n\n// GetInt32 returns the value associated with the key as a int32.\nfunc GetInt32(key string) int32\n\n// GetInt64 returns the value associated with the key as a int64.\nfunc GetInt64(key string) int64\n\n// GetString returns the value associated with the key as a string.\nfunc GetString(key string) string\n\n// GetStringSlice returns the value associated with the key as a []string.\nfunc GetStringSlice(key string) []string\n\n// GetUint returns the value associated with the key as a uint.\nfunc GetUint(key string) uint\n\n// GetUint8 returns the value associated with the key as a uint.\nfunc GetUint8(key string) uint8\n\n// GetUint16 returns the value associated with the key as a uint.\nfunc GetUint16(key string) uint16\n\n// GetUint32 returns the value associated with the key as a uint32.\nfunc GetUint32(key string) uint32\n\n// GetUint64 returns the value associated with the key as a uint64.\nfunc GetUint64(key string) uint64\n\n注:如果在 nirvana 包中对 Config 进行了扩展,涉及到字段的改变,也需要在这个包中修改 Option 和相应的功能。\n"},"topics/rest.html":{"url":"topics/rest.html","title":"rest","keywords":"","body":"rest 包\nrest 包提供了一个简单的 REST Client 用于访问 API 服务。\n在这个包中,主要包含三个概念:Config,Client 和 Request。Config 是 Client 的配置,用于创建 Client。而 Request 则由 Client 创建,用来表示每一个 REST 请求。\n// RequestExecutor implements a http client.\ntype RequestExecutor interface {\n Do(req *http.Request) (*http.Response, error)\n}\n\n// Config is rest client config.\ntype Config struct {\n // Scheme is http scheme. It can be \"http\" or \"https\".\n Scheme string\n // Host must be a host string, a host:port or a URL to a server.\n Host string\n // Executor is used to execute http requests.\n // If it is empty, http.DefaultClient is used.\n Executor RequestExecutor\n}\n\n// Client implements builder pattern for http client.\ntype Client struct {\n ...\n}\n\n// NewClient creates a client.\nfunc NewClient(cfg *Config) (*Client, error)\n\n// Request creates an request with specific method and url path.\n// The code is only for checking if status code of response is right.\nfunc (c *Client) Request(method string, code int, url string) *Request\n\n// Request describes a http request.\ntype Request struct {\n ...\n}\n\n// Path sets path parameter.\nfunc (r *Request) Path(name string, value interface{}) *Request\n\n// Query sets query parameter.\nfunc (r *Request) Query(name string, values ...interface{}) *Request\n\n// Header sets header parameter.\nfunc (r *Request) Header(name string, values ...interface{}) *Request\n\n// Form sets form parameter.\nfunc (r *Request) Form(name string, values ...interface{}) *Request\n\n// File sets file parameter.\nfunc (r *Request) File(name string, file interface{}) *Request\n\n// Body sets body parameter.\nfunc (r *Request) Body(contentType string, value interface{}) *Request\n\n// Meta sets header result.\nfunc (r *Request) Meta(value *map[string]string) *Request\n\n// Data sets body result. value must be a pointer.\nfunc (r *Request) Data(value interface{}) *Request\n\n// Do executes the request.\nfunc (r *Request) Do(ctx context.Context) error\n\nRequest 保存了一个请求的数据,用 Path,Query,Header,Form,File,Body 来设置请求的相关值,Meta 和 Data 来设置用于接收响应的值(都是指针)。然后 Do 用于真正发起请求,并完成 Meta 和 Data 的填充。\nRequest 的方法与 API Definition 的除了 Prefab 和 Error 之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于 Prefab 是由服务端生成而不由客户端提交,Error 由 Do 方法返回,因此这两种类型没有对应的方法。\n注:这个 Client 会被由命令 nirvana client 生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。 \n"},"topics/utils.html":{"url":"topics/utils.html","title":"utils","keywords":"","body":"utils 系列包\nutils 系列包包含:\n\napi 包,用于读取项目源码,并生成与 API 有关的所有数据结构,产出的结构可用于生成文档和客户端。\nbuilder 包,利用 api 包读取源码并生成 API 数据。\ngenerators/golang 包,利用 api 包提供的数据结构生成 golang 客户端。\ngenerators/swagger 包,利用 api 包提供的数据结构生成 API 文档。\ngenerators/utils 包,提供公共工具给其他生成器使用。\nprinter 包,提供了一个在 Terminal 中打印表格的功能。\nproject 包,提供了基础工具用于读取项目配置文件,通常是 nirvana.yaml。\n\n除了 printer 包以外,其他包都是用于生成文档和客户端用的。\n在 api 包中,提供了如下功能:\n\n对应 golang type 的 Type为了能让 golang type 能转换为可读的数据结构,构建了 Type 相关类型:\n// TypeName is unique name for go types.\ntype TypeName string\n\n// TypeNameInvalid indicates an invalid type name.\nconst TypeNameInvalid = \"\"\n\n// StructField describes a field of a struct.\ntype StructField struct {\n // Name is the field name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package path that qualifies a lower case (unexported)\n // field name. It is empty for upper case (exported) field names.\n PkgPath string\n // Type is field type name.\n Type TypeName\n // Tag is field tag.\n Tag reflect.StructTag\n // Offset within struct, in bytes.\n Offset uintptr\n // Index sequence for Type.FieldByIndex.\n Index []int\n // Anonymous shows whether the field is an embedded field.\n Anonymous bool\n}\n\n// FuncField describes a field of function.\ntype FuncField struct {\n // Name is the field name.\n Name string\n // Type is field type name.\n Type TypeName\n}\n\n// Type describes an go type.\ntype Type struct {\n // Name is short type name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package for this type.\n PkgPath string\n // Kind is type kind.\n Kind reflect.Kind\n // Key is map key type. Only used in map.\n Key TypeName\n // Elem is the element type of map, slice, array, pointer.\n Elem TypeName\n // Fields contains all struct fields of a struct.\n Fields []StructField\n // In presents fields of function input parameters.\n In []FuncField\n // Out presents fields of function output results.\n Out []FuncField\n // Conflict identifies the index of current type in a list of\n // types which have same type names. In most cases, this field is 0.\n Conflict int\n}\n\n\n对应 Nirvana API 的 Definition此处的 Definition 大部分字段与 definition 包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source definition.Source\n // Name is the name to get value from a request.\n Name string\n // Description describes the parameter.\n Description string\n // Type is parameter object type.\n Type TypeName\n // Default is encoded default value.\n Default []byte\n}\n\n// Result describes a function result.\ntype Result struct {\n // Destination is the target for the result.\n Destination definition.Destination\n // Description describes the result.\n Description string\n // Type is result object type.\n Type TypeName\n}\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Type is result object type.\n Type TypeName\n // Instance is encoded instance data.\n Instance []byte\n}\n\n// Definition is complete version of def.Definition.\ntype Definition struct {\n // Method is definition method.\n Method definition.Method\n // HTTPMethod is http method.\n HTTPMethod string\n // HTTPCode is http success code.\n HTTPCode int\n // Summary is a brief of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function TypeName\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n\n用于表示代码注释的 Comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是 +nirvana:api=option:\"value\"。\nconst (\n // CommentsOptionDescriptors is the option name of descriptors.\n CommentsOptionDescriptors = \"descriptors\"\n // CommentsOptionModifiers is the option name of modifiers.\n CommentsOptionModifiers = \"modifiers\"\n // CommentsOptionAlias is the option name of alias.\n CommentsOptionAlias = \"alias\"\n // CommentsOptionOrigin is the option name of original name.\n CommentsOptionOrigin = \"origin\"\n)\n\n// Comments is parsed from go comments.\ntype Comments struct {\n lines []string\n options map[string][]string\n}\n\nvar optionsRegexp = regexp.MustCompile(`^[ \\t]*\\+nirvana:api[ \\t]*=(.*)$`)\nvar options = []string{CommentsOptionDescriptors, CommentsOptionModifiers, CommentsOptionAlias}\n\n// ParseComments parses comments and extracts nirvana options.\nfunc ParseComments(comments string) *Comments\n\n\n用于分析源码的 AnalyzerAnalyzer 可以读取源码,获取结构对象和注释信息。\n// Analyzer analyzes go packages.\ntype Analyzer struct {\n ...\n}\n\n// NewAnalyzer creates a code ananlyzer.\nfunc NewAnalyzer(root string) *Analyzer\n\n// Import imports a package and all packages it depends on.\nfunc (a *Analyzer) Import(path string) (*types.Package, error)\n\n// PackageComments returns comments above package keyword.\n// Import package before calling this method.\nfunc (a *Analyzer) PackageComments(path string) []*ast.CommentGroup\n\n// Packages returns packages under specified directory (including itself).\n// Import package before calling this method.\nfunc (a *Analyzer) Packages(parent string, vendor bool) []string\n\n// FindPackages returns packages which contain target.\n// Import package before calling this method.\nfunc (a *Analyzer) FindPackages(target string) []string\n\n// Comments returns immediate comments above pos.\n// Import package before calling this method.\nfunc (a *Analyzer) Comments(pos token.Pos) *ast.CommentGroup\n\n// ObjectOf returns declaration object of target.\nfunc (a *Analyzer) ObjectOf(pkg, name string) (types.Object, error)\n\n\n集合上述所有功能的 ContainerContainer 读取源码并进行分析,产出 API 相关的所有定义和类型信息。API 定义和类型信息可以用来生成 API 文档和客户端。\n// Definitions describes all APIs and its related object types.\ntype Definitions struct {\n // Definitions holds mappings between path and API descriptions.\n Definitions map[string][]Definition\n // Types contains all types used by definitions.\n Types map[TypeName]*Type\n}\n\n// Container contains informations to generate APIs.\ntype Container struct {\n ...\n}\n\n// NewContainer creates API container.\nfunc NewContainer(root string) *Container\n\n// AddModifier add definition modifiers to container.\nfunc (ac *Container) AddModifier(modifiers ...service.DefinitionModifier)\n\n// AddDescriptor add descriptors to container.\nfunc (ac *Container) AddDescriptor(descriptors ...definition.Descriptor)\n\n// Generate generates API definitions.\nfunc (ac *Container) Generate() (*Definitions, error)\n\n\n\nbuilder 包相对 api 包来说就简单很多了,这个包里包含一个 API Builder:\n// APIBuilder builds api definitions by specified package.\ntype APIBuilder struct {\n ...\n}\n\n// NewAPIBuilder creates an api builder.\nfunc NewAPIBuilder(root string, paths ...string) *APIBuilder\n\n// Build build api definitions.\nfunc (b *APIBuilder) Build() (*api.Definitions, error)\n\nAPI Builder 首先会利用 Analyzer 去读取指定路径的源码,然后从中找到标记了 modifiers 和 descriptors 选项的注释。两个选项的值对应两个函数,分别返回 Modifier 和 Descriptor。然后动态生成一个 main.go 文件 import 这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用 api 包的 Container 来生成 API 定义和类型信息。API Builder 执行 main.go 后通过 stdout 取得返回值,反序列化成 Definitions 结构,然后再返回给 API Builder 的调用者。这样就完成了对一个项目的 API 信息的提取。\ngolang 包和 swagger 包实际上都是利用了 API Builder 的返回结果,构建出相应的客户端和文档。golang 包会为每一个 API 生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了 rest 包 Client 接口。swagger 包则是利用了 github.com/go-openapi/spec 将 API 定义和类型转换成了 openapi 的定义。\n"},"topics/command.html":{"url":"topics/command.html","title":"cmd/nirvana","keywords":"","body":"nirvana 命令\nNirvana 命令对应的包在 cmd/nirvana 中,目前包括三个命令:\n\ninit,用于初始化标准项目目录结构和必要文件\napi,用于生成 API 文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)\nclient,用于生成 API 对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。\n\n每个命令都是一个目录,互相之间不干扰。每个目录都有一个 init.go 的文件用于把当前的命令加入到 Nirvana 根命令中,比如:\npackage project\n\nimport \"github.com/spf13/cobra\"\n\n// Register registers all commands.\nfunc Register(root *cobra.Command) {\n root.AddCommand(newInitCommand())\n}\n\n然后在 main.go 中 import 这个包并进行命令注册:\nimport (\n \"github.com/caicloud/nirvana/cmd/nirvana/api\"\n \"github.com/caicloud/nirvana/cmd/nirvana/client\"\n \"github.com/caicloud/nirvana/cmd/nirvana/project\"\n \"github.com/caicloud/nirvana/log\"\n \"github.com/spf13/cobra\"\n)\n\nvar root = &cobra.Command{\n Use: \"nirvana\",\n Short: \"Nirvana toolchains\",\n}\n\nfunc main() {\n project.Register(root)\n api.Register(root)\n client.Register(root)\n if err := root.Execute(); err != nil {\n log.Fatalln(err)\n }\n}\n\n接下来以 init 命令为例,说明单个命令的基本结构:\nfunc newInitCommand() *cobra.Command {\n options := &initOptions{}\n cmd := &cobra.Command{\n Use: \"init /path/to/project\",\n Short: \"Create a basic project structure\",\n Long: options.Manuals(),\n Run: func(cmd *cobra.Command, args []string) {\n if err := options.Validate(cmd, args); err != nil {\n log.Fatalln(err)\n }\n if err := options.Run(cmd, args); err != nil {\n log.Fatalln(err)\n }\n },\n }\n options.Install(cmd.PersistentFlags())\n return cmd\n}\n\ntype initOptions struct {\n Boilerplate string\n Version string\n Registries []string\n ImagePrefix string\n ImageSuffix string\n BuildImage string\n RuntimeImage string\n}\n\nfunc (o *initOptions) Install(flags *pflag.FlagSet) {\n flags.StringVar(&o.Boilerplate, \"boilerplate\", \"\", \"Path to boilerplate\")\n flags.StringVar(&o.Version, \"version\", \"v0.1.0\", \"First version of the project\")\n flags.StringSliceVar(&o.Registries, \"registries\", []string{}, \"Docker image registries\")\n flags.StringVar(&o.ImagePrefix, \"image-prefix\", \"\", \"Docker image prefix\")\n flags.StringVar(&o.ImageSuffix, \"image-suffix\", \"\", \"Docker image suffix\")\n flags.StringVar(&o.BuildImage, \"build-image\", \"golang:latest\", \"Golang image for building the project\")\n flags.StringVar(&o.RuntimeImage, \"runtime-image\", \"debian:jessie\", \"Docker base image for running the project\")\n}\n\nfunc (o *initOptions) Validate(cmd *cobra.Command, args []string) error\n\nfunc (o *initOptions) Run(cmd *cobra.Command, args []string) error\n\n基本结构如下:\n\n一个创建命令的私有函数 newInitCommand\n一个表示当前命令的所有参数的 initOptions\nOptions 实现的 Install 方法用于安装 flag 到命令中\nOptions 实现的 Validate 方法用于验证参数是否正确\nOptions 实现的 Run 方法真正执行命令对应的逻辑\n\n\n\n如果需要新增命令扩展 Nirvana 的功能,需要按照上述结构进行开发。\n"},"topics/routes.html":{"url":"topics/routes.html","title":"Routes","keywords":"","body":"Routes\nDefinitions\nDefining routes and be as easy as defining such functions:\nfunc handler(request Request) (Response, error) {\n // do stuff\n // return data\n // or error if anything wrong happened\n}\n\nHowever we can do a lot more with Nirvana framework!\nDeclarative approach to routes definition\nIn Nirvana, routes definitions are documentations, i.e. you will only need to follow the DRY rule, define your routes (w.r.t specific formats) and then we'll try to cover these for you:\n\nbasic test-case generation\nOpenAPI docs generation\nparameter checking (against function signatures)\netc.\n\ndefinition.Descriptor struct\nThis is the core data structure that you'll use, and a typical example looks like this:\ndefinition.Descriptor{\n Path: \"/api\",\n Description: \"here goes your api description\",\n Produces: []string{\"text/plain\"},\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: func(ctx context.Context) (string, error) {\n return \"Hello World!\", nil\n },\n Parameters: []definition.Parameter{},\n Results: []definition.Result{\n {\n Type: definition.Data,\n },\n {\n Type: definition.Error,\n },\n },\n },\n },\n}\n\nTODO: add more\n"},"topics/cli.html":{"url":"topics/cli.html","title":"CLI","keywords":"","body":"CLI\nCLI, or command-line interface is where you put the switches or entrances to your application's different functionalities. You can always adopt a micro-service approach and follow UNIX philosophy to build dedicated application for specific use-case, as you should always do. However you'll still need some good and consistent way to expose different options for people / system that run your application. Therefore it is very good practice to follow good convention and make your CLI unambiguous and first class API as well.\nIn Nirvana, we didn't build CLI framework from scratch and instead adopt Cobra as a default baseline, with some small addition just to boost your experience.\nTODO: more details to follow\n"},"topics/validation.html":{"url":"topics/validation.html","title":"Validation","keywords":"","body":"Validation\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :) (checkout guide below to add your own validation)\n\nFor full example code, see validator.\n"},"topics/openapi.html":{"url":"topics/openapi.html","title":"Open API","keywords":"","body":"OpenAPI\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +caicloud:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\n"},"topics/metrics.html":{"url":"topics/metrics.html","title":"Metrics","keywords":"","body":"Metrics\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig(\"\", 8080).\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 -H 'Content-type: application/json' 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"application/json\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in microseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"125000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"250000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"500000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"2e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"4e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"8e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"125000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"250000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"500000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"2e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"4e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"8e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 53\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 89\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 98\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 0\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\n"}}} \ No newline at end of file +{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["!=","\"\"","\"${customer}","\"/\",","\"/api/v1\",","\"/api/v1/some\".","\"/child\",","\"/echo\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"alice\",","\"apach","\"application/x","\"content","\"context\"","\"correspond","\"echo","\"error","\"first","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"messag","\"message\":","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"openapi","\"pluginname\"","\"result","\"second","\"thi","\"v1.0.0\",","\"valid","#","$","${customer})","${name}","%s:%d\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'{\"name\":","(","(*spec.swagger,","(and","(apachebench)","(bool,","(e.g.","(i","(string,",")","*/*","*api.message)","*body)","*nirvana.config)","*plugininstaller)","+nirvana:openapi=tru",".","...","./examples/get","/","//","/debug/pprof","/echo","/echo,","/echo[?msg=]","/go/package/to/your/generated/funct","/go/package/to/your/typ","/metric","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","0","0202","1","10","10,","100)","1000","1000,","101","11","11:18:50.235+08","126","16:34:38.663+08","1:","2.0","2.0\",","200","201","202","204","260","28","2:","2>&1","3","41","500","500,","50554","507","55","73","8080","90","90m.","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.result{","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[text/plain]","\\","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`default`","`json:\"message\"","`json:\"name\"","`name`","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source`","`source`.","ab","abov","above.","above:","accept","accept:","access","actual","ad","add","advanc","aforement","aim","allow","alway","anoth","api","api\",","api.getopenapidefinitions,","appear","application.","application/json\"","arg","around","array","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","avoid","back","basic","basics.","before.","behavior","behavior,","behavior.","below","best","between","bit","block","bodi","body,","body.","body.nam","body.name)","bool):","bool,","box","broken","build","builder","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","built","busniess","by:","c.set(externalconfigname,","caicloud.","call","capabl","care","careful,","case","case,","categori","certain","cfg","cfg)`","chang","charact","characters,","characters.","check","checkout","child","children","children:","children;","cli","client","client,","client.","cmd","code","code()","code,","code.","collect","combin","combination.","come","comma","command,","common","complex","complic","concept","config","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.port())","configa","configa(fielda","configb","configb()","configur","configuration,","configuration:","configure(","configurers:","conflict","consist","const","consum","consume.","consumes.","consumes:","contact:","contain","content","contention(en","contenttyp","context","context,","context.context","context.context,","contribut","contriv","conveni","convention,","convert","convertor,","core","core,","correspond","counter","cpu","creat","create:","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","d","data","data\"","data.","decid","declar","default","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor.","definition.descriptor{","definition.error,","definition.get,","definition.middlewar","definition.paramet","definition.produc","definition.query,","definition:","definitions,","definitions.","definitions:","delet","depend","deriv","describ","descript","description:","descriptor","descriptor'","descriptor,","descriptor.","descriptor:","descriptors.","design","destin","destination:","detail","details,","develop","developmenet","diagnos","differ","direct","directli","disabl","disable()","disabled.","discouraged.","distribut","doc","doc.","doc.go","docs,","docs.","doctoc","document","documentation.","don't","done","done,","draft","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","empti","enabl","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","err","error","error)","error,","error.","error:field","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","etc","etc.","etc;","even","ex.","exact","exampl","example,","example:","execut","expired.","expos","extens","extern","externalconfignam","factori","factory.","facts:","fail","false.","fast","fatal","featur","few","field","fielda.","fieldb.","fields.","fieldtype)","file","file.","filter","final","finally,","find","first","first.","float*,","float64((time.since(starttime))","flow","follow","form","format","format.","format:","formatt","found\")","found\",","framework","framework:","from.","full","func","func(c","func(ctx","function","function.","function:","functions.","funtion","future.","gen","gener","generation,","get","get/list","get/sav","getdefinitions:","gethttpclient(req),","getopenapidefinit","getopenapidefinitions.","getopenapideinit","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","glance,","global","glog.","go","goal","golang","grep","guid","h","handl","handler","handler.","header","header.","headers:","help","helper","here","high","histogram","hold","hood,","http","http://host:port/metrics.","http://localhost:8080/echo","http://localhost:8080/metr","httpctx","httpctx.request()","httpctx.responsewriter()","https://editor.swagger.io/,","i)","i.e.","id","idea","ident","ignored.","impact","implement","implementation,","implemented:","import","improv","includ","include:","incom","increas","index","indic","individu","info","info:","infof","infoln","infoprops:","inform","inherit","init()","inject","input","input(","input,","input.","insid","instal","install(build","install/initi","instanc","instead,","instrument","instrumentation.","int","int)","int*,","int,","int.","integr","intercept","interfac","interface,","interface:","interface{}","intern","introduc","introduct","ip","ip.","is,","it!","it'","it.","it:","json","json.newencoder(os.stdout)","keep","key","key,","key:","kickoff","knob","know","language:","larger","last","latenc","latencies.","layout","length","let'","level","level,","librari","license,","license:","list","listen","load;","log","log.fatal(err)","log.infof(\"listen","log.v(4).info","logger","logic","longer","look","lot","main","main()","make","management,","mani","map[string]str","match","mean","mechan","mention","messag","message()","message,","message.","meta","method","method,","method.","method:","methods,","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","microsecond","middlewaar","middlewar","middlewares.","middlewares:","millisecond","mime","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","modifi","moditi","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","multipl","myself\"}'","n","name","name!\")","name\"),","name()","name,","name.","name:","names.","namespac","namespace.","namespace:","natur","necessary,","need","need.","net/http/pprof.","new","newlin","newmetricsmiddleware(namespac","next","next.continue(ctx)","nil","nil)","nil,","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana:","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","non","note","notice:","now","number","obey","object","occurs,","on","onc","one,","open","openapi","openapi\",","openapi()","openapi,","openapi.","oper","operator'","operator,","operator.","operator;","operators.","operators/valid","operators:","option","optional.","order.","others).","out","output","overrid","p","p90","packag","package,","package.","package:","page.","panic(err)","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parameters,","parameters.","parameters:","parent","parent'","pars","part","partial","pass","patch","path","path(path","path).observe(elapsed)","path,","path.","path:","paths:","performant,","place","playground/validator.v9","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","point","popular?","port","port.","post","pprof","pprof,","pre","prefab","prefix","prefix,","prevent","previou","produc","produce.","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","prometheu","propos","provid","put","queri","quick","quit","random","readable.","ready,","receiv","refer","reflect","regist","relationship","repli","req","req.header.get(\"cont","req.url.path","request","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests:","requir","resourc","resource,","resource.","resp","respons","response.","result","result\",","result.","results,","results.","results:","retrun","return","rewrit","router.","run","run:","same","satisfi","scope","second","see","seen","send","sens","sent.","separ","serv","server","server\",","server,","server.","servic","service!","service.builder,","service.httpcontextfrom(ctx)","service;","services.","set","settings:","sever","severity.","show","shown","signatur","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","sleep","smoothli","snippet","somedefinitions,","somemiddlewar","somemiddlewares,","something.","sourc","source,name[,default=value]","source.","source:","spam","spec.","spec.infoprops{","specif","specifi","specification:","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starts.","starttim","static","statu","step","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","string","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","strongli","struct","struct\",","struct,","struct.","struct:","structur","struct{}","stuff","sub","success","success\",","such","summari","support","support,","support.","sure","swagger","swagger,","swagger.json","symbol","tabl","table:","tag","tags.","take","target","tbd","teach","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","then,","therefore,","though","three","time","time.millisecond)","time.now()","times,","tire","title:","to:","total.","trace","tracing,","translat","tri","two","type","type\"),","type.","type:","types:","u","uint*,","under","understand","unimport","uninstal","uninstall(build","uniqu","unlik","updat","upgrad","url","url:","urlencoded\"","us","usability.","usag","usage.","use:","used.","user","user,","usual","usually,","valid","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation,","validation.","validation:","validator'","validator.","validator.int,","validator.newcustom(","validator.str","valu","value.","values.","var","var,","velocity.","verb","verb,","verbos","veri","verifi","version","version:","via","via:","view","want","warn","we'll","we'v","wealth","well","whole","within","won't","works!","works:","write","written","www","x","yaml","you'll","you'v","{","{...)","{...}","|","}","})","},"],"guides/project.html":["\"\"","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/someapi\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/myproject","$path",".","./bin/myproject","./build/myproject/dockerfil","./myproject","/apis/v1","1.11)中,若项目处于","8080:8080","8080。","=","api","api.go","api。api","bin","build","cd","cmd","contacts:","contain","convert","curl","debian:jessi","definit","dep","description:","descriptor","descriptors.go","dockefile),还有一个","docker","dockerfil","email:","ensur","export","filter","filters.go","first","framework","github.com/caicloud/nirvana/cmd/nirvana","github.com/golang/dep/cmd/dep","go","go111module=on","golang/dep","golang:latest","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","hosts:","http","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages:","init","ip","localhost:8080","logo","main.go","maintain","make","makefil","makefile,只需要使用简单的","manag","messag","message.go","middlewar","middlewares.go","mod","modifi","modifiers.go","modul","myproject","myproject:v0.1.0","name:","nirvana","nirvana.yaml","nobodi","nobody@nobody.io","p","packag","pkg","prefix:","prefix,那么","project","project:","readme.md","regexp","regexp:","replac","replacement:","request","rules:","run","schemes:","server","u","us","v","v1","vendor","version","version.go","versions:","│","└──","├──","。","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","中也提供了直接打包成镜像的命令:","中间件","中):","为被替换为","也提供对","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","会生成一个完整的","使用","修改器","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","功能:","参数:","启动时会打印出","命令启动容器,然后进行访问:","命令就可以完成编译工作:","和","在","在当前","在服务启动之后,可以通过浏览器或者命令行访问","在需要发布的时候,通常需要打包成镜像的形式,在","在项目的","如果设置了","字段无效","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","定义","定义相关的代码都在这个目录中","定义,可以修改或删除","对应","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就能够看到","或域名,可以有多个","所有与","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","描述符","文档生成和客户端生成会依赖这个配置文件进行","服务使用的协议,只能填写","正则表达式,用于匹配路径","此时在","每个","比如设置","然后就可以直接使用命令创建项目(请确保","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","用于文档和客户端生成","的","的命令行和其他依赖工具:","的支持。","的运行,只用于描述项目的信息以及区分不同版本的","的返回结果。","的需要的包定义文件","目录下,则还需要运行一下命令开启","目录中就能看到编译后的二进制文件,直接运行:","直接编译运行","编译并打包成","编译运行","范例,因此可以直接运行查看效果。","访问","语言版本(version","语言版本升级到最新版本","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径替换,因此需要正确设置版本规则。","过滤器","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","进行包管理","那么","配置文件,用于描述项目的基本信息和结构。","镜像","项目","项目。项目结构如下:","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","首先将",",然后在创建项目时添加"],"guides/api.html":["\"/messages\",","\"/messages/{message}\",","\"count\",","\"exampl","\"get","\"list","\"messag","\"number","\"queri","\"thi","&message{","(*message,","([]message,","...","//","/apis/v1/resourc","/apis/v1/resources/{resource}","0;","10,","200","201","202","204",":=","=","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.parameter{","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`source:\"header,cont","`source:\"query,start,default=100\"`","anotherautostruct","api","api。","api,用于获取一条消息:","application/x","array\",","asynccr","asyncdelet","asyncpatch","asyncupd","auto","bodi","body,但是","content","content\",","content\"}","content:","contenttyp","context.context,","count","count)","creat","data","db","def.dataerrorresults(\"a","def.definition{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.query,","default:","default={value}","definit","definitions:","delet","describ","description:","descriptor","descriptor。","destin","entry.","error","error)","exampl","example\",","example\",\"content\":\"exampl","file","form","func","function:","getmessag","getmessage(ctx","get。","get,两者没有区别。","golang","header","http","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","id","id\"),","id\",","id,","id.","id/nam","id:","init","init()","int","int)","json","key","list","listmessag","listmessages(ctx","make([]message,","map[string]string,会写入","messag","message\"),","message\",","message.getmessage,","message.listmessages,","messages\"),","messages\",","messages.","meta","method","method:","multipart/form","name:","nil","nirvana","number","parameters:","patch","path","path:","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","post","prefab","put","queri","register([]def.descriptor{{","request","respons","rest","results:","return","server","sourc","source:","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","specifi","start","string","struct","summari","summary:","tag","titl","title:","type","type\"`","updat","url","urlencod","var","www","{","{\"id\":100,\"title\":\"thi","}","},","}...)","与业务函数的参数名称无关。","业务函数","业务函数返回结果如何放到请求的响应中。","中定义的动作以及对应的","中携带","中,我们建议所有的","中,所有的","之后,编译运行。然后访问","从","从请求的那一部分取得数据,然后传递给业务函数。","但是为了使","修改一个资源的部分内容","内部,比如一个","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","列表的","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","删除一个资源","参数值来源于","参数值来源于当前","参数名称,作为","参数描述","参数来源","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","名称","名称为","和","因为只获取一条消息,此处为","在","在一个","在使用","如果有多个","如果需要给字段设置默认值,则需要使用","定义。","定义了","定义了一个返回","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义,再对应业务函数:","定义:","对于","对于没有","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","成功状态码","或","所有的","接下来我们给项目增加一个","描述","数组包含了这个路径下的所有定义。","方法","方法。","方法。比如某个","方法包。","方法就应该是","方法都是语义层面的,为的是提高","无","是一个短语,用于描述这个","是从","是返回一个资源列表的,那么","更新一个资源(幂等)","有","根据上面的","根据资源唯一","概念","添加","用于描述一个业务函数的参数的来源和默认值。","的","的字段。","的字段。忽略所有没有","的形式。","的版本号。下表中展示了","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的结构体类型,会递归遍历以寻找带有","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型的","类型):","结构体,可以组合成一个:","给项目添加一个","而不是","范例如下:","获取一条消息的","获取资源","获取资源列表","详细描述这个","请求中使用的都是","路径","返回值可以是任意结构,自动转换并写入到","返回值目标","返回的是资源数组,所以使用","这个","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个返回值类型必须是","这是一个工具方法,用于快速生成一个参数结构。","这里添加的业务函数都是以","进行描述的。首先看一个","都是通过","都遵守","里取值。","里获取的。","链接","错误类型,必须是","风格,并且在","默认值"],"guides/doc.html":["$","/home/go/src/myproject","0702","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","8080","api","api.go:179","api.go:87","api.go:95","browser","default","directori","doc","http","http://127.0.0.1:8081","info","ip","listen","nirvana","open","packag","pkg/api","pleas","project","root","serv","serve=\":8081\"","specified,","view","|","会读取","公开给用户使用。于是我们需要给","即可查看文档。","和端口。","在完成了","并使用","提供了一个命令用于从项目中生成文档:","文档","文档截图如下:","服务用于访问这个文档。打开浏览器,访问","生成","的开发工作后,我们需要将","的用户提供一个文档,方便用户阅读。nirvana","端口提供服务。为了防止端口冲突,可以使用","设置监听的","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","这就表示文档生成成功,并且提供了一个","默认情况下,nirvana"],"guides/client.html":["!=","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"context\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","\"myproject/client/v1\"","$","&client{","&client{client},","&client{}","(","(*client,","(c","(interface,","(messag","(message1",")","*client","*client)","*message,","*rest.client","*rest.config)","*v1.client","./client","./client.go","./v1/client.go","./v1/types.go","//","/home/go/src/myproject","0702","10)","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","200,",":=","=","[]message,","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","api","c","c,","c.rest.request(\"get\",","c.v1","c.v1,","cli","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","clients.","contain","content","context.context,","count","count).","creat","data(&messages).","data(message1).","default","describ","directori","do(ctx)","entry.","err","error","error)","func","gener","getmessag","getmessage(ctx","golang","host:","id","id.","import","info","int","int)","interfac","io.read","io.readclos","listmessag","listmessages(ctx","log.fatal(err)","log.info(msgs)","main()","messag","message).","message1","messages.","msgs,","mustnewcli","mustnewclient(cfg","myproject/cli","new","new(message)","newclient","newclient(cfg","newclient(cfg)","nil","nil,","nirvana","nirvana.yaml","occurs.","output","packag","panic","panic(err)","path(\"message\",","pkg/api","project","query(\"count\",","rest","rest.newclient(cfg)","return","root","scheme:","specified,","string","struct","titl","type","types.go","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","var","version","{","|","}","})","└──","├──","中定义。api","使用客户端","依赖的结构体都会被提取出来并生成到","函数即可:","和","多客户端整合。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","指定其他输出目录(目前仅支持生成","支持良好,因此在","文件中,方便客户端使用。","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","生成代码","生成代码:","生成代码:","生成客户端","生成的客户端代码如下:","生成的客户端是版本化的,版本在","的参数和返回值中,尽量避免使用其他接口。","目前客户端生成对接口的支持还不完善,仅仅对","目录下生成","该命令默认会在","调用,可以生成客户端以供使用:","输出日志如下(项目路径和日志时间会有所不同):","限制"],"concepts/cp.html":["!=","&&","//","204",":=","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","application/json","application/octet","application/x","application/xml","conet","consum","consume(r","consumers:","consumer:","content","contenttyp","contenttype()","data","err","error","file","form","github.com/caicloud/nirvana/servic","handl","http","interfac","interface{})","io.read","io.reader,","io.writer,","json.marsh","json.unmarsh","log.fatal(err)","marshal","mime","multipart/form","newsimpleserializer(contenttype)","nil","nirvana","object","object.","pars","produc","produce(w","producers,并且他们的行为和","producers:","producer。","producer:","r","reader","return","serial","servic","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","specif","stream","string","text/plain","type","type.","unmarsh","urlencod","v","v.","w.","write","writer.","www","xml.marshal","xml.unmarsh","{","}","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","与","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","于","则负责将业务函数的返回结果写入到响应体中。","包提供了相应的工具用于注册用户自己的","包路径:","去读取数据并进行类型转换。","只能生成","可能不能满足实际使用需求。因此","和","在","在业务的实际场景中,默认提供的","在接收到","在需要生成","如果接收类型是","如果类型符合","实现了这个接口后,通过","将数据写入到响应。","将类型转换为字节数据写入到响应体中。","并成为","快速生成","或","接口。其中","接口或者是","描述","提供了","注册","添加","用于将请求体中的数据转换为业务函数需要的类型,而","的","的工具","的注册方法即可注册","空的","类型","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","自动处理数据转换,nirvana","说明了请求和响应中的数据类型。为了根据","请求中,content","进行解析。","通常对应于","通常情况下,我们需要快速添加一些","需要实现接口:","默认提供的"],"concepts/operator.html":["!=","\"converter\"}","\"count\",","\"list","\"number","\"queri","\"validator\"}","([]message,","(anytype,","(c","(interface{},","(uint,","*converterforanobject)","*validatorforanobject)","//","0;","10,","1,并且把",":=","=","[]def.operator{","[]def.parameter{","[]definition.operator{newcustom(f,\"custom","anoth","anytyp","anytype)","api","array\",","bool(tag","built","byte(tag","call","concret","context.context,","convert","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","count","count)","creat","custom","data","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","definit","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","descript","description\")}","description:","doc","done","err","error","error)","error)。其中参数的","error.","error。其中","example:","exp:","f","f(context.context,","f.","field","file","for(f","func","func(ctx","func.","function:","gen.","gener","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","go","go.","in()","indic","int","int(tag","int)","int16(tag","int32(tag","int64(tag","int8(tag","interfac","interface{})","interface{},","it'","kind","kind()","list","listmessag","listmessages(ctx","make([]message,","messag","message.listmessages,","messages\"),","messages\",","messages.","method:","name:","newcustom","newcustom(f","nil","nil,","nirvana","number","object","object,","object.","objv2,","one.","oper","operate(ctx","operator.","operators:","operator,那么","operator:","operator:valid","out","out()","paramet","parameters:","playground/validator,提供了用于生成","reader.","recommended.","reflect.typ","replac","result","results:","results。其中","return","second","signature:","source:","specifi","stream","string","string(tag","string)","string,","struct","struct(inst","struct{}","summary:","tag。","type","type.","uint","uint(tag","uint(value),","uint)","uint16(tag","uint32(tag","uint64(tag","uint8(tag","unless","us","user","valid","validate(object.(*object));","validation,","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","valu","var","way","{","{return","}","}),","},","业务函数","中使用","中添加","中,都有一组","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","会从第一个","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","包提供了工具方法用于将转换函数包装成","包的实现基于","包路径:","包还提供了方法用于创建自定义验证器:","可以不同。","和","和业务函数的参数一一对应,而","和返回值的","在","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在每个","在没有","对于结构体类型,在需要的字段上添加名为","并且会检查最后一个","接口,可用于针对单个参数或返回值进行验证和修改:","提供了","提供了两种类型的","方法获取类型,","是具体要验证的类型,不能使用接口。","是链式调用的,也就是说上一个","有时候默认的验证器不能覆盖复杂的验证需求,因此","注意:oper","的","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的情况下,nirvana","的方法:","的最小值为","的示例:","的返回值会作为下一个","类型。","类型。业务函数的参数也响应的变成了","类型是否和业务函数的参数类型一致。","类型转换为了","自定义验证器","转换函数必须符合","这个例子中,验证器要求","这是一个在","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","验证器函数必须符合签名"],"concepts/filter.html":["*http.request)","/","//","/。","/,如果存在就重定向到没有","/,如果没有就加上","application/x","befor","bool","data,然后","fals","false,","file。","fillleadingslash","filter","filtered.","form","func(resp","github.com/caicloud/nirvana/servic","handl","highest","http.responsewriter,","itself.","lifecycle.","matching.","mean","multipart/form","nirvana","pars","parserequestform","path","prioriti","redirecttrailingslash","req","request","request,","request.","return","router","run","type","url","urlencod","want","www","则表示请求不应该被继续处理,立刻丢弃。","包路径:","和","在整个","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","尾部是不是存在","提供了","提供的一些","机制,可以在收到一个请求的时候,立刻进行处理。并根据","框架中处于最高优先级。filter","的路径上。","的返回值来确定是直接丢弃该请求还是继续处理。","过滤器","返回","这两种类型的请求体,并转换为","这个过滤器判断","这个过滤器只针对","首部有没有"],"concepts/prefab.html":["\"context\",","(interface{},","...","//","=","[]def.parameter{","context","context.context)","contextprefab","contextprefab。请参考","creat","data.","def.definition{","def.prefab,","error)","form","github.com/caicloud/nirvana/servic","http","instanc","instance.","interfac","intern","make","make(ctx","modifi","name","name()","name.","name:","nirvana","paramet","parameters:","prefab","prefab。","prefab,即","prefab,名称为","reflect.typ","registerprefab()","request","return","servic","service.contextprefab。这个","someapi","sourc","source:","source。其他的","string","type","type()","type.","unmarsh","var","{","}","},","中一类特殊的","中实现的唯一一个","从请求中获取数据。","但是一般情况下,我们不应该这样使用","使用方法如下:","包的","包路径:","即可。","只需要将业务函数对应位置的","可以通过","和","将框架传递给它的与请求绑定的","提供的","是","来自于服务端本身。","注册需要的","的数据来源都是来自于请求,而","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","设置为","返回回去。"],"concepts/modifier.html":["*/*。","*definition.definition)","api","consum","consumeallifconsumesisempti","consumenoneforhttpget","consumer,即允许请求体为空。","context","context.context。","context。在这种场景下,如果每个","definit","definition.error。","definitionmodifi","definition。在我们实际开发过程中,经常会要求","delet","firstcontextparamet","func(d","github.com/caicloud/nirvana/servic","http","init","lasterrorresult","modif","modifi","modifiers。","nirvana","pkg/apis/modifi","prefab。启用之后,所有业务函数的第一个参数必须是","produc","produceallifproducesisempti","producenoneforhttpdelet","producer,即允许响应体为空。","type","下查看启用的","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","中,每一个","为所有","为所有的","为空的","会显得非常冗余。因此","公共部分的构建,而每个","创建的项目中,可以在","加上","加上空的","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包路径:","和","在","在使用","如下:","完成","实际上要填写的部分就是只与自身业务相关的信息。modifi","提供了","提供的","机制,允许在","生效之前,对","的","的最后一个返回值加上","的第一个参数添加上名为","类型的","这个","这样就能通过","进行修改。","都有一个对应的","都需要去描述这个参数,那么","默认启用的"],"concepts/middleware.html":["\"/path\",","/","//","/path","/path/path2","/path/path2/oth","1","1.","2","2.","3","3.",">","[]def.middleware{somemiddleware},","actions.","call","carri","chain","chain)","chain.continue()","contain","context.","continu","continue(context.context)","def.descriptor{","describ","descriptor","error","execut","form","func(context.context,","github.com/caicloud/nirvana/definit","interfac","middlewar","middlewares.","middlewares:","next","nirvana","on,","pass","path","path:","subsequ","type","url","want","{","}","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","且成功匹配的情况下,中间件的执行按照","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中间件","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件添加在","中:","包路径:","如果以下路径都添加了中间件:","有关,因此如果多个","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","添加成功后,所有前缀匹配","的请求都会执行这个中间件。","的顺序。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","那么如果存在请求"],"concepts/context.html":["\"application/x","\"content","\"multipart/form","([]string,","(multipart.file,","(reader","(string,","*http.request","//","bodi","body()","body.","bool","bool)","called.","check","code.","contain","content.","contentlength","contentlength()","contenttyp","context","context.","contextprefab","context。http","data","data\".","describ","extend","false,","file","file(key","form","form(key","github.com/caicloud/nirvana/servic","header","header(key","headerwrit","headerwritable()","http","http.responsewrit","http.responsewriter.","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","int","interfac","io.readcloser,","key.","length","method","nirvana","ok","once.","path","path(key","queri","query(key","read","reader","recal","request","request()","request.","responsewrit","responsewriter()","responsewriter。可是使用","return","routepath()","servic","statu","statuscod","statuscode()","string","string)","string,","string.","type","type\"","urlencoded\"","valid","valu","valuecontain","valuecontainer()","whether","writeheader()","writeheader().","written","www","{","}","中包含","中间件不应该修改","中,context","会把对应的","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","包的","包路径:","和","在","在一个请求路由匹配成功后,nirvana","方法获得","框架会为每个请求构建这样的","用于传递请求的上下文。context","的","相关接口如下:"],"concepts/source.html":["(interface{},","//","8","[]consumer,","consum","container.","context.context,","current","data","defaultvalu","definition.sourc","error","error)","func","gener","generate(ctx","generator.","generator。这些","generator:","github.com/caicloud/nirvana/servic","interfac","interface{},","name","nirvana","object","paramet","parameter.","parametergener","parametergenerator)","reflect.type)","regist","registerparametergener","registerparametergenerator(gener","return","servic","sourc","source()","source:path,query,header,form,file,body,auto,prefab。","string,","target","type","us","valid","valid.","validate(nam","valu","valuecontainer,","vc","whether","{","}","不能满足实际的业务需求,可以通过","包提供的方法注册自定义的","包路径:","如果","对应一个","每种","种类型的","负责一种类型的参数的验证和类型转换工作。","默认提供了","默认提供的"],"concepts/destination.html":["(goon","(or","//","1.","2.","3","3.","[]producer,","api","bool,","case","code","code.","context","context.","context.context,","continue):","current","deal","definit","definition.destin","definition.typ","descid","destin","destination()","destinationhandl","destinationhandler)","destination:meta,data,error。","err","error","error)","error.","everyth","execute.","false,","finish","func","github.com/caicloud/nirvana/servic","go","goon,用来确定是否需要执行下一个","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler:","higher","int","int,","interfac","interface{})","look","mean","next","nil","nil.","nirvana","noth","nothing)","ok,","prior","prioriti","priority()","produc","reflect.type)","regist","registerdestinationhandl","registerdestinationhandler(handl","result","return","run.","servic","someth","statu","subsequ","success","take","target","three","true,","type","type.","us","valid","validate(target","valu","value.","whether","wrong,","wrong.","{","}","不能满足实际的业务需求,可以通过","先执行。并且执行之后会返回","包提供的方法注册自定义的","包路径:","如果","存在优先级,优先级高的","对应一个","每种","种类型的","负责一种类型的返回结果的数据转换工作。","默认提供了","默认提供的"],"concepts/error.html":["\"${name}","\"exampl","\"there","\"thi","${id}\")","&message{","(*message,","//","100","101\",\"data\":{\"id\":\"101\"}}","200","404","500","=",">","api","code","code()","code.","common","contain","content\",","content\"}","content:","context.context,","correct\")","correct\",","curl","data","err","error","error()","error)","error.","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。创建","error,但是第一种方法比第二种多出更多特性:","example\",","example\",\"content\":\"exampl","func","getmessag","getmessage(ctx","github.com/caicloud/nirvana/error","golang","handler","http","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/101,即可得到一个","id","id,","id.","id:","id,也就是","implement","inform","int","int)","interfac","interface,","interface{}","intern","messag","message()","messagenotexist","messagenotexist.error(id)","nil","nil,","nirvana","notfound","object","reason","reason。","reason,方便客户端判断错误类型。","return","server","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","specifi","statu","string","title:","type","us","var","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","}","},","中,我们也经常看到使用数字","中,错误需要实现","为了方便使用,nirvana","于是","介绍","使用","使用范例","包","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包路径:","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在实际的业务中,http","在常见的商业","字段中,可以在客户端使用","对于这种错误,都会以","我们建议","接口。即:","接口。如果实现了,就会以","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","提供了","提供了一个新的接口:","方法一","方法二","是否由这个错误工厂生成。","来唯一确定一个错误","来标志的错误。但是数字","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","的","的响应,响应体为:","的形式判断一个","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的方式有两种:","的格式满足:","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的返回值作为","的返回值作为数据返回。","第一种方法带有","第一种方法支持使用","编译运行后可以得到结果:","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","访问","这两种方法都可以创建","这样做有两个优势:","这种形式的","通过","通过具体错误的","里的值进行文本国际化。","错误包","项目名[:模块名]:错误名"],"concepts/method.html":["\"count\",","\"list","\"listmessages\"),","\"method","\"methodname\")","\"number","\"queri","&container{title,","&container{}","(*container)(nil)","([]message,","(ctx","(m","*contain","*container)","*message.contain","//","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0;","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","10,","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","9\",\"content\":\"method","9\"}]",":=","=","[]def.parameter{","[{\"id\":0,\"title\":\"method","api","array\",","contain","content","content\"))","content}","context.context,","count","count)","creat","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","description:","error)","exampl","example\",","func","function:","get()","get(typin","github.com/caicloud/nirvana/definition/method","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","http://localhost:8080/apis/v1/messag","instance)","insterface{})","int)","interface{},","list","listmessag","listmessages(ctx","main.go","make([]message,","messag","messages\"),","messages\",","messages.","method","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","name:","newcontain","newcontainer(title,","nirvana","number","panic。","parameters:","put()","put(in","receiv","results:","return","source:","specifi","string","string)","struct","summary:","titl","type","var","{","}","},","业务方法:","中创建实例并通过","中,业务函数是","为了保证业务与","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","其中","具体实例类型","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","包介绍","包是一个全局实例容器,每种类型对应一个实例。","包路径:","包,用于分离实例的创建和","即可得到返回结果:","和","在","定义。","定义的无关性,nirvana","定义:","实例","实例。","接口实例类型","提供了","方法包","是一样的。","注意,get()","然后编译运行,访问","生成匿名函数:","用于生成一个匿名函数,生成的函数的签名没有方法的","的对应关系。","类型","获取接口实例:","设置接口实例:","请求的","这就是","部分,例如:","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。"],"concepts/configurer.html":["(c","*config","*config)","...","...configurer)","...definition.descriptor)","...service.definitionmodifier)","...service.filter)","//","api","config","config.","configur","configure(configur","configurers.","describ","descriptor(descriptor","error","filter(filt","filter。","func","func(c","github.com/caicloud/nirvana","ip","ip(ip","keyfil","locked.","log.logger)","logger(logg","logger,用于输出错误。","modifier(modifi","modifier。","nirvana","occur","panic","port(port","server","server.","string)","struct","tl","tls(certfile,","type","uint16)","us","{","}","包路径:","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在运行过程中使用的","地址。","实现了","描述。所有的","提供的","机制,用于单独配置每一项信息:","添加","添加到","的","设置","设置监听的","设置监听的端口。","证书和密钥。","都通过这个","配置器机制","里。"],"concepts/plugin.html":["\"pluginname\"","(i","*config)","*nirvana.config)","*plugininstaller)","//","=","`c.config(externalconfigname)`/`c.set(externalconfigname,","befor","builder.","c.set(externalconfigname,","careful,","certain","cfg","cfg)`","config","config.","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","conflict","const","current","delet","disabl","disable()","ensur","error","extern","externalconfignam","fielda.","fieldb.","fieldtype)","framework","func","func(c","get/sav","global","init()","instal","install(build","install/initi","interfac","name","name()","name.","need.","nil","nil)","nirvana","nirvana.","nirvana.configur","nirvana.registerconfiginstaller(&plugininstaller{})","packag","pleas","plugin","plugin.","plugininstal","plugins.","regist","registerconfiginstaller(ci","return","server","server.","servic","service.builder,","set","starting.","string","struct{}","stuff","terminating.","type","uninstal","uninstall(build","uniqu","us","won't","{","{...)","{...}","}","一个基本的插件框架如下:","一般情况下,插件应该通过插件","中添加插件配置。","包提供的方法进行注册:","在","插件实现了这个接口之后,即可通过","插件接口:","插件机制","的","进行注册。然后提供相应的","配置基本信息以外,还提供了插件机制。","除了使用"],"concepts/clients.html":["!=","\"clientset/svca\"","\"clientset/svcb\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","$","$gopath/src/","$gopath/src/clientset","$gopath/src/svca","$gopath/src/svcb","&clientset{}","(","(c","(interface,",")","*clientset)","*rest.config)","../clientset/svca","../clientset/svcb","//","10)",":=","=","a.","b.","c","c,","c.svca","c.svca,","c.svcb","c.svcb,","cd","cli","cli.svca().v1().listmessages(context.background(),","client","client.go","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","contain","creat","describ","err","error","error)","func","host:","import","init","interfac","log.fatal(err)","log.info(msgs)","main()","mkdir","msgs,","multipl","mustnewclientset","mustnewclientset(cfg","new","newclientset","newclientset(cfg","newclientset(cfg)","nil","nil,","nirvana","occurs.","output","packag","panic","panic(err)","rest","return","scheme:","set","set.","struct","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","touch","type","types.go","v1","v2","var","{","}","})","│","└──","├──","两个服务项目。","中创建","为了演示这个过程,我们逐步构建这个项目。","代码如下:","使用","创建","创建项目","即创建了","和","在","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","多客户端整合","整合客户端","此时","没有太大区别:","然后创建两个服务项目(仅用于演示):","生成","生成客户端","的使用方法和普通","的客户端:","的项目结构如下:","统一网关访问","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","项目,用于保存所有服务的客户端:","首先创建","默认情况下,我们会为每个服务生成如下结构的客户端:"],"plugins/logger.html":["//","`desc:\"debug","`desc:\"log","`desc:\"overrid","basic","bool","command","config","configur","contain","debug","enabled\"`","field","flag。","framework","github.com/caicloud/nirvana/plugins/logg","global","int32","level","level.","logger","logger\"`","logger.","logger。","logs\"`","mode.","modifi","nirvana","option","output","overrideglob","plugin","sens","server","struct","true,那么除了设置当前","type","{","}","为","以外,还会设置全局的","包的","包路径:","启用","就无效。如果","暴露","模式后,level","的","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","编写,只是为了通过","这个插件暴露三个选项:"],"plugins/reqlog.html":["/","bool)","configurer:","default()","disable()","doublelog(en","github.com/caicloud/nirvana/plugins/reqlog","id","key,默认为","log.logger)","logger","logger(l","nirvana.configur","request","requestid(en","requestidkey(key","sourceaddr(en","string)","x","上的中间件,用于打印所有路由匹配成功的请求的日志。","关闭插件","包路径:","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件并使用默认配置","插件","的","设置","设置请求","请求日志插件","请求日志插件会添加一个在"],"plugins/metrics.html":["/metric","api","configur","configurer:","disable()","github.com/caicloud/nirvana/plugins/metr","namespac","namespace(n","nirvana.configur","path","path(path","prometheu","prometheus,提供了一个","string)","修改。","关闭插件","包注册指标。采集端可以通过","包路径:","可以通过","启用插件后,可以直接向","插件","用于暴露服务端指标。","监控指标插件","监控指标插件基于","设置","路径","路径,默认值为","采集指标数据。"],"plugins/tracing.html":["/","//","addhook(hook","after(ctx","agenthostport","allow","befor","before(ctx","configurer:","context.context,","custom","customtracer(trac","defaulttracer(servicenam","disable()","exec","github.com/caicloud/nirvana/plugins/trac","hook","hook)","inform","interfac","nirvana.configur","opentrac","opentracing.span)","opentracing.tracer)","process","request","span","span.","string)","string,","trace","tracer","type","{","}","上添加一个中间件用于提取","使用自定义的","使用默认的","信息。","关闭插件","包路径:","接口实现了请求跟踪机制,会在","接口:","插件","设置请求","请求追踪插件","请求追踪插件基于"],"plugins/profiling.html":["/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","api,用于取得服务运行时信息。","configur","configurer:","descriptor:","disable()","github.com/caicloud/nirvana/plugins/profil","net/http/pprof","nirvana.configur","path","path(path","string)","一致的","修改。","关闭插件","前缀路径","包路径:","可以通过","性能分析插件","性能分析插件添加与","插件","设置路径前缀,默认值为","默认情况下,插件会添加四个"],"plugins/version.html":["/version","/version。","api","commit","configurer:","description(descript","disable()","github.com/caicloud/nirvana/plugins/profil","hash","hash(hash","name(nam","nirvana.configur","path(path","string)","version(vers","值","值。一般情况下可以设置为代码的","关闭插件","包路径:","插件","版本信息插件","版本信息插件提供一个","设置","设置服务","设置服务名称","设置服务版本号","设置服务的描述","路径默认为","路径,默认值为","返回服务的版本信息。api"],"plugins/healthcheck.html":["/healthz","/healthz。","api","checker","checker(check","configurer:","context.context)","disable()","error","func(ctx","github.com/caicloud/nirvana/plugins/healthcheck","healthcheck","healthchecker)","nil。如果服务异常,则返回相应的错误。","nirvana.configur","path(path","string)","type","健康检查插件","健康检查插件提供一个","关闭插件","包路径:","如果服务正常,则","应该返回","插件","插件提供了一个函数接口:","用于检查服务是否正常。","设置","路径,默认值为","返回服务当前是否健康。api","默认路径为"],"topics/start.html":["$","$gopath/src","1.10.x","1.9.x","account}/nirvana.git","api","cd","clone","cmd/nirvana","command","config","config.json","convert","definit","definition/method","dep","dep:https://github.com/golang/dep","error","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","fork","git","git@github.com:{your","github","github.com/caicloud/","githuh","go","golang","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","log","mkdir","nirvana","oper","p","plugin","pr","repo","server","servic","service/rout","test","util","validators,用于","vendor","vendor。","一般情况下,我们使用最新版本的","上","与","中。","中包含了两个组件功能实现了","中包含了许多实现了","中,不能在任何子目录下使用","之后,通过","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","以及插件化功能。","其中","准备工作","函数。请参考","到自己的账户下,然后下载源码到本地开发目录中:","功能,并提供了从","包之间的依赖关系:","包包含","包包含多个工具用于","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了框架","包帮助用户快速构建项目。","参数的类型转换和数据验证。","另外","只使用","和","在","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在完成修改并提交到自己的","大版本的兼容性。即使用","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","工作流程","帮助用户把实例方法转换为","开发工具介绍","开发的情况下,需要保持对","提交代码。","插件接口的插件。","方法包。","是","是基础包,分别负责日志基础接口和错误处理基础接口。","框架的","框架的设计核心思想是:隔离","框架设计概览","测试以外,还需要使用","生成,客户端代码生成,项目结构生成。","的主要命令,利用","的入口包。","的兼容性。","的形式向","的配置文件在根目录的","路由和处理的所有功能。","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行开发,但是需要保证两个","除了常规的"],"topics/log.html":["\"error\"","\"fatal\"","\"info\"","\"warn\"","(",")",".","...interface{})","//","1","1.","2","2.","3","3.","4","4.","5.","6.","=","[5,","api","api,并且允许用户接入其他日志系统。","append","argument","call","called.","can't","class","clone","clone(wrapp","const","correspond","current","custom","debug","document","error","error(...interface{})","error.","errorf","errorf(string,","errorln","errorln(...interface{})","exit","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","fmt.print;","fmt.printf;","fmt.println;","follow","four","frequent","glog","golang","handl","immediately.","implement","import","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","information.","int)","int32","interfac","level","level.","leveldebug","leveldebug)","levels.","log","log.","logger","logger.","logger,使用的是","logs,","logs.","mani","manner","math.maxint32","mean","method","missing.","more","neg","new","newlin","nil.","os.exit(1)","os.exit(1).","output","outsid","panic","posit","provid","recommend","recovered.","report","request","return","rules:","see","set","setdefaultlogger()","sever","severityerror","severityfat","severityinfo","severitywarn","silentlogg","site","situation.","stderr","stdlogger。可以通过","string","stripped.","strongli","type","us","usual","v","v(level)","valu","verbos","verboser,","verboser.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","whether","wrapper","wrapper.","write","{","}","之前,需要知道以下几件事情:","包","包提供了一组基础的日志","包有一个默认的","参考了","变更。","和一个使用了","在","在实现一个自定义的","对于不需要输出日志的场景,使用","方法。clone","方法用于在对","时候,使用","标准接口如下:","正确实现","的","的实例而不是","这套日志","进行包装的时候,获取正确层级的调用栈信息。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。"],"topics/errors.html":["\"${user}","(",")","...interface{})","//","11.2","11.3","11.4","11.5","2.3.3","2295,","2774,","3","3.1","3.2","4","4.2","4.4","4918,","5","5842,","6","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8.1","=","api","badgateway","badrequest","bool","build","build(reason","builder","builder,factori","check","code()","conflict","creat","current","deriv","derived(","error","error(format","error(v","error)","error。","error。其中","errros.","expectationfail","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fix","forbidden","format","format.","format,比如","found\")。","gatewaytimeout","gener","gone","http","httpversionnotsupport","immedi","insufficientstorag","int","interfac","interface{}","internalservererror","lengthrequir","lock","loopdetect","message()","methodnotallow","networkauthenticationrequir","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","nirvana","notaccept","notextend","notfound","notimpl","paymentrequir","preconditionfail","preconditionrequir","predefin","proxyauthrequir","reason","reason,","reason.","requestedrangenotsatisfi","requestentitytoolarg","requestheaderfieldstoolarg","requesttimeout","requesturitoolong","rfc","serviceunavail","string","string)","string,","teapot","toomanyrequest","type","unauthor","unavailableforlegalreason","unprocessableent","unsupportedmediatyp","upgraderequir","us","v","v.","var","variantalsonegoti","without","{","}","主要是以","之上,构建了","则用于判断一个错误是否是由当前的","则用于构建特定的","加上一些附加属性,用来表示返回的错误码等信息。","包","包中存在三个概念,分别是","包中):","包提供的","包的依赖,可以自行实现错误包,只要产出的错误符合","包类似于标准库的","包,但是提供了方法用于生成格式化的错误和错误判断。","可以构建带有","和","因此在","就足够了。但是为了让错误能够以","接口即可。","接口如下(这个接口并没有显式定义在","接口如下:","接口,用于创建具有一类特征的","方法用于直接创建出","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","状态码作为基础的:","生成。","用于传入参数输出一个真正的错误。","用于构建","的","的两个方法:","的形式向客户端返回,我们还需要给","的错误)。","目前","识别的错误,但是如果业务逻辑中如果不希望引入对","这个包方便了用户创建能够被","这样就能够非常方便的错误创建和错误判断了。","通常情况下,有","首先看"],"topics/definition.html":["!=","\"\"","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/some\",","\"accept\"","\"accept\".","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"content","\"converter\"}","\"create\"","\"data\"","\"delete\"","\"error\"","\"file\"","\"form\"","\"get\"","\"header\"","\"list\"","\"meta\"","\"multipart/form","\"patch\"","\"path\"","\"prefab\"","\"query\"","\"source\".","\"source,name\".","\"text/plain\"","\"update\"","\"validator\"}","(","(anytype,","(c","(interface{},",")","*converterforanobject)","*validatorforanobject)","//",":=","=","[]definit","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","`source:\"header,cont","`source:\"query,start\"`","accept","accepttypeal","actions.","altern","anytyp","anytype)","api","asynccr","asyncdelet","asyncpatch","asyncupd","auto","back","behavior.","bind","bodi","body.","brief","built","call","carri","cases,","certain","chain","chain)","chain.continue()","child","children","clearer","client","client.","code","code.","combin","concret","const","consum","consume.","consumes.","contain","content","content.","contenttyp","context.","context.context,","continu","continue(context.context)","converter:","converterforanobject","convertobjectv1toobjectv2(object.(*objectv1))","creat","create)。","current","custom","data","data\"","data\".","data.","default","defin","definit","definition.","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definitions.","delet","describ","descript","descriptor","descriptor'","descriptors.","destin","differ","element","empty,","equal","err","error","error)","error.","errorproduc","etc.","ex.","exampl","example.","example:","execut","exist","f","f(context.context,","field","field.","file","first","form","format","from.","func","func(context.context,","function","function.","gener","generator.","go.","handl","handler","handler.","header","header.","http","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","identifi","in()","indic","inherit","instanc","int","interfac","interface{}","interface{})","it'","key,","kind","kind()","last","line","list","locat","make","mani","mean","meta","method","method.","middlewar","middlewares.","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","modifi","more","name","name,","next","nil","nil,","nirvana","object","object,","object.","objv2,","occur","on","on,","one.","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operators:","out","out()","overrid","paramet","parameter.","parameters.","parent","parent'","pass","patch","path","path.","place","prefab","previou","produc","produce.","produces.","provid","queri","reader.","receiv","recommended.","reflect.typ","replac","request","request.","response.","result","result.","results.","retrun","return","return.","second","set","signature:","sourc","specially.","start","statu","stream","stream\"","string","string,","string.","struct","struct{}","sub","subsequ","succeess","success","summari","tag","tag.","target","time,","treat","type","type\"","type\"`","type.","unless","updat","url","urlencoded\"","us","usag","valid","validate(object.(*object));","validator:","validatorforanobject","valu","value.","values.","want","ways.","write","www","{","{return","}","中提供了","中,提供了","其中","其他与","其他与具体","分别对应","则针对单个的业务参数和返回值,可以对值进行验证和修改。","包","包包含了","包除了包含对","参数和返回值定义","可被","同等级别的字段","和","在","在上面的定义中,存在两个额外功能:","如果希望对","定义,用于描述","定义:","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","方法,这个方法是一个抽象方法,用于描述一种行为(比如","的","的参数与返回值。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的定义以外,还提供了一些函数,帮助快速构建","结构体包含了一个具体的","结构体包含具有如下含义的字段:","继承的字段","路径","路径同等级别的字段","进行扩展,需要遵守上面这些规则。"],"topics/method.html":["(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(c","*container)","...","//","=","api","contain","container.","container:","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","definit","definition.funct","definition/method","func","function","get(inst","golang","ifac","instanc","instance)","instance.","interface,","interface{}","interface{})","interface{},","mappings.","method","method)","method.","methods.","more","need","newcontainer()","on","put","put(inst","putinterfac","putinterface(ifac","return","specifi","string)","struct","type","us","var","want","{","}","一般情况下,用户会使用这个全局的容器。","之前使用。","包","包中,可以看到","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包还提供了一个全局的","可以在","和","在","容器如下:","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","时,使用","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","真正的实例,即","获取某个实例的方法,之后再在服务启动逻辑里","过程。也就是可以在声明","这个主要是利用了","这个实例方法容器分离了方法的"],"topics/converter.html":["\"converter\"","(anytype,","//","=","`converter`.","anytyp","anytype)","built","const","convert","converter.","creat","data","definition.oper","definition.operatorfunc(operatorkind,","describ","error)","error.","f(context.context,","f)","for(f","func","func.","gener","go.","interfac","interface{})","kind","kind.","mean","opeartor","oper","operatorkind","operators/convert","operator。","operator:","packag","paramet","recommended.","return","second","signature:","string","string,","struct","type","us","{","}","包","包提供了一个","实现,帮助用户快速构建名为","的","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为"],"topics/validator.html":["\"custom\"","\"struct\"","\"validator\"","\"var\"","(",")","//","=","[]definition.operator{newcustom(f,\"custom","`validator`.","allow","anoth","anytype)","automat","base","basic","bool","bool(tag","bool.","built","byte","byte(tag","call","categori","category()","categorycustom","categorystruct","categoryvar","const","context.context","context.context,","contextu","creat","current","custom","definition.oper","describ","descript","description\")}","description()","differ","distinguish","doc","done","error","exp:","expos","f","f.","fields,","func","func(ctx","gen.","gener","golang","gopkg.in/go","implementation.","indic","information.","int","int(tag","int*,","int16","int16(tag","int32","int32(tag","int64","int64(tag","int8","int8(tag","interfac","interface{})","interface{},","kind","kind.","mean","nest","newcustom","newcustom(f","object","opeartor","oper","operator.","operatorkind","operators/valid","operator:","otherwis","packag","pass","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","return","specifi","string","string(tag","string)","string,","struct","struct(inst","struct.","structs,","tag","tag()","tag.","type","type.","types.","types:","uint","uint(tag","uint*,","uint16","uint16(tag","uint32","uint32(tag","uint64","uint64(tag","uint8","uint8(tag","unless","us","user","valid","validation,","validator.","way","{","}","包","包提供了一系列的方法帮助用户快速生成用于校验参数的","基础类型,结构体类型和自定义类型。目前验证方法基于","目前支持三种类型的验证,分别对应"],"topics/router.html":["(executor,","*","*regexp.regexp",".*:","/","//","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/{regexp:[a",">","[]index","ab","api","call","can't","carri","chain","children","contain","context","context.","continu","continue(context.context)","definit","describ","error","error)","execut","execute(context.context)","execute.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exp","expression.","find","fix","form","full","fullmatch:.*","fullmatchregexpnod","func(context.context,","gener","handler","index","indic","inform","inspect","inspect(context.context)","inspector","inspector:","instanc","int","interfac","it'","key","match","match.","middlewar","middlewares.","name","next","node.","node:","nodes:","on,","optim","pass","path","path.","path:","pathnod","po","posit","prefix","regexp","regexp:[a","regexpnod","regexpnode.","regular","rest","return","router","routingchain","routingchain)","routingchain.continue()","segment.","select","servic","service/rout","someth","string","stringnod","struct","submatches.","target","the/rest/path","type","valid","valu","value.","want","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","}","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","下面用一个例子来说明这几个节点:","中间件接口如下:","之前。","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","剩余路径类型节点","剩余路径类型节点:","包","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包进行","包进行路由构建和匹配。","在上面的路径节点中,每个节点都可以绑定一个","如果能返回一个","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","完全匹配。","定义,然后由","实际上是调用的","对于中间件而言,处理完当前的任务之后只需要调用","将","执行完成之后,请求也处理完成了。","来生成一个能够处理当前的路由上下文的","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","路径匹配完成后,会调用匹配链的最后一个节点的","这个节点匹配剩余所有路径。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","通过"],"topics/service.html":["\"application/x","\"content","\"multipart/form","(","([]string,","(goon","(interface{},","(multipart.file,","(or","(reader","(service,","(string,",")","*definition.definition)","*http.request","*http.request)","...definition.descriptor)","...filter)","//","1.","100","2.","200","3.","300","=","[]consumer,","[]filter","[]producer,","[]string","[]string)","add","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","api","befor","bodi","body()","body.","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","bool","bool)","bool,","build","build()","builder","builder.","builder:","called.","case","check","code","code()","code.","common","const","consum","consume(r","consumer,converter,prefab","contain","container.","content.","contentlength","contentlength()","contenttyp","contenttype()","context","context.","context.context)","context.context,","contexthttpcontext","continue):","convert","creat","current","custom","data","data\".","data.","deal","defaultvalu","definit","definition.","definition.destin","definition.sourc","definition.typ","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definition。请求过滤器则是在","descid","describ","descriptor","destination()","destinationhandl","destinationhandlerdestinationhandl","element","err","error","error)","error.","everyth","execute.","executed.","executor","exists,","extend","false,","file","file(key","filter","filtered.","filters()","filters.","finish","form","form(key","func(ctx","func(d","func(resp","function","gener","generate(ctx","generator.","go","golang","handl","handle(ctx","handle.","handler","handler.","handlers.","header","header(key","headerwrit","headerwritable()","higher","highest","highprior","http","http.handler","http.handler,用来处理请求。","http.responsewrit","http.responsewriter,","http.responsewriter.","httpcontext","ignor","implement","inform","instanc","instance.","int","int,","interfac","interface,","interface{}","interface{})","interface{},","intern","io.readcloser,","io.reader,","io.writer,","it'","it.","itself.","key.","length","lifecycle.","log.logg","log.logger)","logger","logger()","look","lowprior","make","make(ctx","map[string][]definition.definit","map[string][]definition.middlewar","marshal","match","matching.","mean","mediumprior","messag","message()","meta","method","middlewar","middlewares()","middlewares.","mime","modifi","modifier()","modifier.","name","name()","name.","next","nil","nil.","nirvana","noth","nothing)","object","object.","occurs,","ok","ok,","on","once.","panic.","parameter.","parametergener","parametergeneratorparametergener","path","path(key","prefab","prior","prioriti","priority()","produc","produce(w","producerconsum","queri","query(key","query,head","r","read","reader","recal","reflect.typ","reflect.type)","req","request","request()","request,","request.","requests.","respons","responsewrit","responsewriter()","responsewriterresponsewrit","result","return","routepath()","router","router.","run","run.","server.","servic","service.","service.servehttp()","set","setlogg","setlogger(logg","setmodifi","setmodifier(m","someth","sourc","source()","specif","specifi","statu","statuscod","statuscode()","string","string)","string,","string.","subsequ","success","take","target","three","true,","type","type\"","type()","type.","unmarsh","urlencoded\"","us","user","v","v.","valid","valid.","validate(nam","validate(target","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","vc","w.","want","whether","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","{","|","}","↑","↓","中。","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","修改器用于在生成路由之前修改","修改器,请求过滤器,api","其中","则是将业务函数的返回值转换并写入到响应的","包","包实现了","包的入口是","包里提供了一个","和","基础类型的转换器这些转换器一般是用于将请求里的","处理框架:","实现了","实际上是一个","对应","将返回值转换为字节写入响应中。在","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","描述符。构建完成的","提供了多个方法用于设置生成服务需要的日志,definit","是业务函数返回值处理器,通过调用","是对","是真正的参数生成器,通过调用","服务。因此","来提供","构建","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于生成业务函数的参数的","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的基础类型,供业务函数使用。//","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型的","转换为路由需要的数据结构,涉及到以下内容:","返回出去,供业务函数使用。//","还会将","针对请求的"],"topics/nirvana.html":["(builder","(c","*config","*config)","...","...configurer)","//","activ","alway","anoth","api","befor","bool","builder","builder()","builder.","called.","check","clean","cleaner","cleaner.","clients.","complet","config","config(nam","config.","configinstal","configur","configure(configur","configurers.","config:","connections.","contain","context.context)","creat","creation,","current","delet","describ","directli","don't","down","err","error","error)","error,","except","extern","form","func","func()","func(c","get","gracefulli","handl","hold","http","instal","install(build","interfac","interface{}","interface{})","interrupt","ip","ip()","ip.","it.","listen","lock","locked()","locked.","log.logg","logger","logger()","logger.","method","modifi","name","name()","name.","new","newserv","newserver(c","nil","nirvana","occur","occurs.","one.","panic","plugins.","port","port()","port.","request","requests.","resourc","return","router","same","serv","serve()","server","server.","servic","service.builder,","services.","set","set(nam","shut","shutdown","shutdown(ctx","shutdown,","special","start","starting.","string","string)","string,","struct","stuff","terminating.","type","uint16","uninstal","uninstall(build","until","us","via","without","won't","{","}","中可以看到","中,存在一些","也在当前包中。如果需要对配置进行扩展,增强","创建","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","包","包依赖了","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","和","和插件系统。这个包放置在根目录中是因为这个包是","和第三方功能的扩展)。","在","接口如下:","提供的用于生成","方法安装插件。","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","的顶级包,而且其依赖的所有包只来自","级别的配置,这些配置是针对当前服务的。而对应的","自身和标准库(config","需要使用"],"topics/config.html":["'myconfig.name.firstname'.","'nirvana.ip'","(e.g.","(from","(in","(pem","(with","*cobra.command","*int,","*nirvana.config)","*string).","...customoption)","...definition.descriptor)","...plugin)","./","./config/","//","/etc/nirvana/",">","[]string","[]string.","`","`desc:\"desc","`desc:\"nirvana","`desc:\"tl","`desc`","`desc`).","`key`","`pointer`","add","add(point","addopt","addoption(prefix","ag","age\"`","associ","basic","behavior","bool","bool.","case","cert","certif","char","check","collect","comamnd","command","command(cfg","command.","config","config.","configur","configure(cfg","contain","convert","current","custom","customopt","data","default","default,","desc","describ","descript","divid","doc","don't","empti","enabl","enableplugin","enableplugin(plugin","env","env,","error","exampl","example):","example.ag","example.firstnam","example:","example_ag","example_first_nam","execut","execute(descriptor","executewithconfig","executewithconfig(cfg","executing.","field","field,","field.","file)","file,","fill","first","firstnam","flag","flag,","flags,","flags/env/config","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","follow","format)","func","get(key","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","github.com/spf13/cobra","github.com/spf13/vip","given","golang","help","help`,","here","hook","hook()","hook.","https\"`","https.","insensit","instead","int","int.","int16","int32","int32.","int64","int64.","int8","interfac","interface.","interface{}","interface{})","interface{},","ip","ip\"`","is:","isset","isset(key","it'","key","key.","key/valu","listen","listen.","locations.","method","methods.","name","name\"`","name()","name.","namespaces.","nirvana","nirvana.","nirvana.json","nirvana.toml","nirvana.yaml","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","non","obtain","on","option","option,","options.","option,并且实现","order:","overrid","override,","place","plugin","plugins.","pointer","port","port\"`","prefix","prioriti","privat","recommended.","regiser.","retriev","return","run","see","server","server.","set","set(key","set.","sethook","sethook(hook","short","shortflag","singl","specif","store,","store.","string","string)","string,","string.","struct","struct.","tag","time.dur","time.duration.","two","type","uint","uint.","uint16","uint32","uint32.","uint64","uint64.","uint8","up","us","use.","valu","via","viper","want","{","{executablefilepath}/","{executablefilepath}/config/","}","中传递","中的公开字段根据一定的规则(规则参考上面的注释)从","以外,config","包","包中对","包会从以下文件列表中读取配置文件:","包利用","包提供了一个","包的插件能力:","和","和相应的功能。","和配置读取,为","如果读取到配置文件,那么除了使用","实现了","扩展了","接口。用户在","接口如下:","接收配置以外,还可以通过一些帮助方法获取配置:","服务启动提供了命令行支持。","服务配置的特殊性,config","来启用插件,并且将插件","来表达这些配置:","注:如果在","由于","目录:","要求每个插件提供一个","进行了扩展,涉及到字段的改变,也需要在这个包中修改","配置文件名:","除了插件"],"topics/rest.html":["\"http\"","\"https\".","(*client,","(*http.response,","(c","(r","*client)","*config)","*http.request)","*map[string]string)","*request","*request)","...","...interface{})","//","api","bodi","body(contenttyp","builder","check","client","client.","client。而","code","config","config.","context.context)","creat","data","data(valu","definit","describ","do(ctx","do(req","empty,","error","error)","execut","executor","file","file(nam","form","form(nam","func","header","header(nam","host","host:port","http","http.defaultcli","implement","int,","interfac","interface{})","meta","meta(valu","method","newclient","newclient(cfg","nirvana","parameter.","path","path(nam","path.","path,query,header,form,file,bodi","pattern","pointer.","prefab","queri","query(nam","request","request(method","request.","requestexecutor","requests.","request。config","respons","rest","result.","right.","scheme","scheme.","server.","set","specif","statu","string","string)","string,","struct","type","url","us","used.","valu","{","}","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","会被由命令","保存了一个请求的数据,用","则由","创建,用来表示每一个","包","包提供了一个简单的","和","在这个包中,主要包含三个概念:config,cli","方法返回,因此这两种类型没有对应的方法。","是","是由服务端生成而不由客户端提交,error","服务。","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","注:这个","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","用于真正发起请求,并完成","用于访问","由","的填充。","的方法与","的配置,用于创建","的除了","请求。"],"topics/utils.html":["\"\"","\"alias\"","\"descriptors\"","\"modifiers\"","\"origin\"","(","(*api.definitions,","(*definitions,","(*types.package,","(a","(ac","(b","(exported)","(includ","(types.object,","(unexported)",")","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*comment","*contain","*container)","+nirvana:api=option:\"value\"。","...","...definition.descriptor)","...service.definitionmodifier)","...string)","//","0.","=","[]*ast.commentgroup","[]byte","[]exampl","[]funcfield","[]int","[]paramet","[]result","[]string","[]string{commentsoptiondescriptors,","[]structfield","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","abov","add","adddescriptor","adddescriptor(descriptor","addmodifi","addmodifier(modifi","alias.","analyz","analyzeranalyz","ananlyzer.","anonym","api","apibuild","apis.","array,","befor","between","bool","bool)","brief","build","build()","builder","builder.","builder:","bytes.","call","case","cases,","client","code","code.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","complet","conflict","const","consum","consume.","consumes.","contain","container.","containercontain","content","creat","current","data","data.","declar","def.definition.","default","definit","definition.","definition.destin","definition.method","definition.sourc","definitions.","definition此处的","depend","describ","descript","descriptions.","descriptor","descriptor'","descriptors.","descriptor。然后动态生成一个","destin","differ","directori","elem","element","embed","empti","empty,","encod","equal","error","error)","error.","errorproduc","exampl","example.","extract","field","field.","findpackag","findpackages(target","from.","func","funcfield","function","function.","gener","generate()","generators/golang","generators/swagg","generators/util","github.com/go","go","golang","handler","handler.","hold","http","httpcode","httpmethod","identifi","immedi","import","import(path","index","indic","inform","input","instanc","int","invalid","itself).","key","keyword.","kind","kind.","line","list","lower","main.go","mani","map","map,","map.","map[string][]definit","map[string][]str","map[typename]*typ","mean","method","method.","modifi","modifiers.","name","name.","names.","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newcontain","newcontainer(root","nirvana","nirvana.yaml。","object","objectof","objectof(pkg,","offset","on.","openapi","openapi/spec","option","options.","optionsregexp","origin","out","output","overrid","packag","package.","packagecom","packagecomments(path","packages(par","packages.","paramet","parameter.","parameters.","parent","pars","parsecom","parsecomments(com","path","pkgpath","pointer.","pos.","present","printer","produc","produce.","produces.","project","qualifi","reflect.kind","reflect.structtag","regexp.mustcompile(`^[","relat","request.","rest","result","result.","results.","retrun","return","same","sequenc","short","show","slice,","sourc","specifi","stdout","string","string)","string,","struct","struct,","struct.","structfield","succeess","success","summari","swagger","tag","tag.","target","target.","termin","token.pos)","type","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","type为了能让","uintptr","under","uniqu","upper","us","util","valu","value.","values.","var","vendor","version","ways.","whether","within","{","}","中打印表格的功能。","信息的提取。","包","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中,提供了如下功能:","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包则是利用了","包和","包实际上都是利用了","包提供的数据结构生成","包来说就简单很多了,这个包里包含一个","包的","包相对","包读取源码并生成","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于读取项目源码,并生成与","去读取指定路径的源码,然后从中找到标记了","取得返回值,反序列化成","可以读取源码,获取结构对象和注释信息。","后通过","和","在","大部分字段与","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","客户端。","对应","将","执行","接口。swagger","数据。","文件","文档。","文档和客户端。","有关的所有数据结构,产出的结构可用于生成文档和客户端。","来生成","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","用于分析源码的","用于表示代码注释的","的","的定义。","的调用者。这样就完成了对一个项目的","的返回结果,构建出相应的客户端和文档。golang","相关的所有定义和类型信息。api","相关类型:","系列包","系列包包含:","结构,然后再返回给","能转换为可读的数据结构,构建了","读取源码并进行分析,产出","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","选项的注释。两个选项的值对应两个函数,分别返回","除了","集合上述所有功能的","首先会利用"],"topics/command.html":["!=","\"\",","\"boilerplate\",","\"build","\"creat","\"debian:jessie\",","\"docker","\"first","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"imag","\"init","\"nirvana","\"nirvana\",","\"path","\"registries\",","\"runtim","\"v0.1.0\",","\"version\",","&cobra.command{","&initoptions{}","(","(o",")","*cobra.command","*cobra.command)","*cobra.command,","*initoptions)","*pflag.flagset)","//","/path/to/project\",",":=","=","[]string","[]string)","[]string{},","api","api.register(root)","api,用于生成","arg","args);","base","basic","boilerpl","boilerplate\")","build","buildimag","client.register(root)","client,用于生成","cmd","cmd/nirvana","commands.","err","error","flag","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","func","func(cmd","imag","image\",","imageprefix","imagesuffix","import","init","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","instal","install(flag","log.fatalln(err)","long:","main()","main.go","newinitcommand","newinitcommand()","nil","nirvana","option","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","packag","prefix\")","prefix\",","project","project\")","project.register(root)","regist","register(root","registri","registries\")","return","root","root.addcommand(newinitcommand())","root.execute();","run","run(cmd","run:","runtimeimag","short:","string","struct","structure\",","suffix\")","suffix\",","toolchains\",","type","use:","valid","validate(cmd","var","version","{","}","},","一个创建命令的私有函数","一个表示当前命令的所有参数的","中","中,目前包括三个命令:","到命令中","命令","命令为例,说明单个命令的基本结构:","命令对应的包在","基本结构如下:","如果需要新增命令扩展","实现的","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","接下来以","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法用于安装","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","根命令中,比如:","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","然后在","的功能,需要按照上述结构进行开发。","的文件用于把当前的命令加入到","这个包并进行命令注册:"],"topics/routes.html":["\"/api\",","\"hello","\"here","(against","(response,","(string,","(w.r.t","//","[]definition.definition{","[]definition.parameter{},","[]definition.result{","[]string{\"text/plain\"},","add","anyth","api","approach","basic","case","check","context.context)","core","cover","data","declar","defin","definit","definition.data,","definition.descriptor","definition.descriptor{","definition.error,","definition.get,","definitions:","description\",","description:","doc","documentations,","dri","easi","error","error)","etc.","exampl","follow","formats)","framework!","func","func(ctx","function","function:","functions:","gener","goe","handler(request","happen","i.e.","look","lot","method:","more","need","nil","nirvana","nirvana,","openapi","paramet","parameters:","path:","produces:","request)","results:","return","rout","rule,","signatures)","specif","struct","structur","stuff","such","test","this:","todo:","tri","type:","typic","use,","we'll","world!\",","wrong","you'll","you:","{","}","},"],"topics/cli.html":["/","addit","adopt","alway","api","applic","application'","application.","approach","baseline,","boost","build","case,","class","cli","cli,","cobra","command","consist","convent","dedic","default","detail","didn't","differ","do.","entranc","experience.","expos","first","follow","framework","functionalities.","good","instead","interfac","line","make","micro","more","need","nirvana,","option","peopl","philosophi","practic","put","run","scratch","servic","small","specif","still","switch","system","therefor","todo:","unambigu","unix","us","veri","way","well.","you'll"],"topics/validation.html":["\"correspond","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"msg\",","$","''","'gt'","(checkout","./examples/get","/echo","0","0202","1","10","11:18:50.235+08",":)",":8080","[*/*]","[]definition.operator{validator.string(\"gt=10\")},","[]definition.parameter{","[text/plain]","abov","ad","add","advanc","allow","anoth","below","between","builder.go:163","builder.go:178","charact","characters,","code,","concept","consumes:","convert","convertor,","curl","custom","defin","definition.query,","definitions:","description:","descriptor:","differ","easili","echo","echo.go:67","enough","error:field","exampl","facts:","fail","framework","full","go","guid","hood,","info","input","input.","integr","key:","list","listen","longer","messag","method:","middlewares:","more","name:","new","nirvana","non","now","on","oper","operators.","operators:","package,","parameter\",","parameters:","path:","playground/validator.v9","pre","prevent","produces:","repli","request;","run","second","see","sens","server","sever","simpl","smoothli","source:","spam","started/validator/echo.go","such","support","tag","tags.","teach","terminal:","test","testtesttest","tire","two","under","us","usage.","user","valid","validation)","validation,","validation.","validator.","veri","verifi","version","want","works!","works:","{","|","},"],"topics/openapi.html":["!=","\"alice\",","\"apach","\"content","\"echo","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"message\":","\"nirvana\",","\"thi","\"v1.0.0\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","'{\"name\":","+caicloud:openapi=tru","./examples/get","//","/tmp/swagger.json","2.0\",",":=",">","\\","`json:\"message\"","`json:\"name\"","api","api.getopenapidefinitions,","application/json\"","build","builder.buildopenapispec(&echo,","built","code,","come","command,","complic","contact:","creat","curl","d","decid","defin","definitions:","description:","docs,","docs.","document","documentation.","easi","echo","encod","encoder.encode(swagger);","endpoint","enpoint.","err","exampl","example,","file.","finally,","first","follow","from.","full","gen","gener","getdefinitions:","github.com/caicloud/nirvana/examples/get","go","h","http://localhost:8080/echo","https://editor.swagger.io/,","i.e.","info:","infoprops:","it'","json.newencoder(os.stdout)","license,","license:","make","messag","message,","myself\"}'","name","name:","need","new","next","nil","nirvana","now","open","openapi","openapi\",","openapi.","p","packag","package:","panic(err)","post","provid","put","run","see","sent.","server","server\",","servic","spec.infoprops{","specification:","started/openapi/echo.go","started/openapi/pkg/api","step","string","struct","support","swagger,","swagger.json","title:","type","type:","upgrad","url:","user,","validate:\"gt=10\"`","validate:\"required\"`","version","version:","view","we'll","x","you'v","{","}","})","},"],"topics/metrics.html":["\"nirvana_request_latencies\"","#","$","'content","'http://localhost:8080/echo?msg=testtesttest'","(and","(apachebench)",")","./examples/get","/echo","/metric","0","1","100)","1000","1000,","2>&1","48533","53","8080).","89","90m.","98",":=","[0,","ab","actual","ad","add","alway","anoth","api","application/json'","around","author.","between","box","broken","checkout","client,","client.","code,","code.","complex","concept","config","config.","configur","configuration,","configuration:","configure(","contenttyp","counter","curl","default","depend","diagnos","disabled.","distribut","done","done,","each","enabl","endpoint.","exampl","example,","expos","format.","full","function","go","grep","guid","h","help","histogram","http","http://localhost:8080/metr","implement","individu","inform","instal","instrumentation.","it'","latenc","latencies.","let'","load;","mani","metric","metrics,","metrics.","metrics.path(\"/metrics\"),","microsecond","middlewares.","more","n","nirvana","nirvana.newdefaultconfig(\"\",","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","now","on","onc","others).","out","p90","plugin","plugin,","plugin.","prometheu","random","regist","request","resourc","resource,","resource.","respons","run","run:","see","seen","server","server,","servic","service!","service;","show","simpli","simul","sleep","start","started/metrics/echo.go","starts.","static","summari","support","tell","terminal,","therefore,","time","total.","type","type:","understand","us","user","verb","verb,","via","we'll","we'v","wealth","|"]},"length":45},"tokenStore":{"root":{"0":{"2":{"0":{"2":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}},"7":{"0":{"2":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292}}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.017361111111111112}},";":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"1":{"0":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.004433934377771209},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.04513888888888889}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"0":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}},":":{"1":{"8":{"docs":{},":":{"5":{"0":{"docs":{},".":{"2":{"3":{"5":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"6":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},".":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"5":{"docs":{},":":{"4":{"7":{"docs":{},":":{"5":{"2":{"docs":{},".":{"0":{"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"4":{"9":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"0":{"docs":{},":":{"5":{"4":{"docs":{},".":{"1":{"5":{"6":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"5":{"docs":{},".":{"6":{"0":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"6":{"docs":{},":":{"3":{"4":{"docs":{},":":{"3":{"8":{"docs":{},".":{"6":{"6":{"3":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.005911912503694945},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.034722222222222224}},".":{"1":{"0":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"1":{"docs":{},")":{"docs":{},"中":{"docs":{},",":{"docs":{},"若":{"docs":{},"项":{"docs":{},"目":{"docs":{},"处":{"docs":{},"于":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"docs":{}},"9":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"把":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"2":{"0":{"0":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},"1":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0002955956251847473}}},"2":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"./":{"ref":"./","tf":0.0011823825007389892}}},"4":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"2":{"9":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"6":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"7":{"7":{"4":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"8":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"3":{"docs":{},".":{"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"3":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},">":{"docs":{},"&":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}}}},"3":{"0":{"0":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0014779781259237363}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"4":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"4":{"0":{"4":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"5":{"3":{"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}},"docs":{}},"docs":{}},"9":{"1":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"5":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"5":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"5":{"5":{"4":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"docs":{}},"docs":{}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"4":{"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"6":{"5":{"8":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"7":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"5":{"docs":{},".":{"1":{"0":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"7":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"8":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"9":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"6":{"docs":{},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"7":{"1":{"6":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"2":{"3":{"1":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.04849884526558892}}}},"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}},"docs":{}},"docs":{}},"3":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"2":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"8":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"8":{"0":{"8":{"0":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},")":{"docs":{},".":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"9":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"9":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"8":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"9":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"]":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.014484185634052616},"guides/project.html":{"ref":"guides/project.html","tf":0.0330188679245283},"guides/api.html":{"ref":"guides/api.html","tf":10.038535645472061},"guides/doc.html":{"ref":"guides/doc.html","tf":3.442708333333333},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/version.html":{"ref":"plugins/version.html","tf":0.05},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555},"topics/start.html":{"ref":"topics/start.html","tf":0.046875},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.033444816053511704},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.027472527472527},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},":":{"1":{"7":{"9":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"8":{"7":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"9":{"5":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"服":{"docs":{},"务":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"接":{"docs":{},"入":{"docs":{},"其":{"docs":{},"他":{"docs":{},"日":{"docs":{},"志":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"m":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"'":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},"'":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"e":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.026234567901234566}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"b":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"o":{"docs":{},"v":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"o":{"1":{"1":{"1":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.014150943396226415},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}},"d":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"v":{"docs":{},"i":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"@":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{},"{":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},",":{"docs":{},"两":{"docs":{},"者":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":5.08235294117647},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}},":":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.009163464380727165},"guides/project.html":{"ref":"guides/project.html","tf":0.0330188679245283},"guides/api.html":{"ref":"guides/api.html","tf":0.025048169556840076},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.0380952380952381},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0392156862745098},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.03271028037383177},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0859375},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":10.02572347266881},"topics/config.html":{"ref":"topics/config.html","tf":0.021604938271604937},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.023255813953488372},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.16666666666666666},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.06896551724137931},"plugins/version.html":{"ref":"plugins/version.html","tf":0.15},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.08333333333333333},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"{":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"2":{"docs":{},".":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"2":{"0":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"服":{"docs":{},"务":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"./":{"ref":"./","tf":0.00325155187703222},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"y":{"docs":{},"@":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702}}},"s":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"w":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"e":{"docs":{},"w":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"4":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"2":{"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"3":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"5":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"与":{"docs":{},"其":{"docs":{},"他":{"docs":{},"普":{"docs":{},"通":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"此":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"和":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"都":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"侵":{"docs":{},"入":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"作":{"docs":{},"出":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"应":{"docs":{},"当":{"docs":{},"以":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"对":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"包":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"增":{"docs":{},"强":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"设":{"docs":{},"计":{"docs":{},"上":{"docs":{},"与":{"docs":{},"现":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"心":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"过":{"docs":{},"程":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"层":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"层":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"含":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"发":{"docs":{},"布":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"修":{"docs":{},"改":{"docs":{},"并":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"场":{"docs":{},"景":{"docs":{},"中":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"除":{"docs":{},"了":{"docs":{},"正":{"docs":{},"常":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"各":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"到":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},",":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"没":{"docs":{},"有":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"整":{"docs":{},"个":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"源":{"docs":{},"头":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"公":{"docs":{},"共":{"docs":{},"的":{"docs":{},"网":{"docs":{},"关":{"docs":{},"进":{"docs":{},"行":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"对":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"整":{"docs":{},"合":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"涵":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"过":{"docs":{},"程":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"导":{"docs":{},"致":{"docs":{},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"引":{"docs":{},"用":{"docs":{},"各":{"docs":{},"种":{"docs":{},"各":{"docs":{},"样":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"综":{"docs":{},"合":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{},"该":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"每":{"docs":{},"个":{"docs":{},"包":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"主":{"docs":{},"要":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"额":{"docs":{},"外":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"这":{"docs":{},"些":{"docs":{},"组":{"docs":{},"件":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"计":{"docs":{},"理":{"docs":{},"念":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"会":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"通":{"docs":{},"常":{"docs":{},"足":{"docs":{},"够":{"docs":{},"使":{"docs":{},"用":{"docs":{},"者":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"间":{"docs":{},"也":{"docs":{},"会":{"docs":{},"存":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"速":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"件":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"中":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"是":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"一":{"docs":{},"个":{"docs":{},"着":{"docs":{},"重":{"docs":{},"于":{"docs":{},"提":{"docs":{},"高":{"docs":{},"开":{"docs":{},"发":{"docs":{},"效":{"docs":{},"率":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}},"短":{"docs":{},"语":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"指":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"验":{"docs":{},"证":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"否":{"docs":{},"由":{"docs":{},"这":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"包":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"负":{"docs":{},"责":{"docs":{},"日":{"docs":{},"志":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"处":{"docs":{},"理":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}},"由":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"而":{"docs":{},"不":{"docs":{},"由":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"让":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{},"框":{"docs":{},"架":{"docs":{},"隔":{"docs":{},"离":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"处":{"docs":{},"于":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"设":{"docs":{},"计":{"docs":{},"核":{"docs":{},"心":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},":":{"docs":{},"隔":{"docs":{},"离":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"概":{"docs":{},"览":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"概":{"docs":{},"览":{"docs":{"./":{"ref":"./","tf":10}}},"念":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"各":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"也":{"docs":{},"是":{"docs":{},"依":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"和":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"该":{"docs":{},"请":{"docs":{},"求":{"docs":{},"还":{"docs":{},"是":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"数":{"docs":{},"据":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"包":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"忽":{"docs":{},"略":{"docs":{},"所":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"通":{"docs":{},"常":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"为":{"docs":{},"了":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"来":{"docs":{},"共":{"docs":{},"同":{"docs":{},"标":{"docs":{},"识":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"框":{"docs":{},"架":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{},"。":{"docs":{},"下":{"docs":{},"表":{"docs":{},"中":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"用":{"docs":{},"途":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"这":{"docs":{},"个":{"docs":{},"短":{"docs":{},"语":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}},"户":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"会":{"docs":{},"递":{"docs":{},"归":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"以":{"docs":{},"寻":{"docs":{},"找":{"docs":{},"带":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},",":{"docs":{},"与":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"字":{"docs":{},"段":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"调":{"docs":{},"换":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"工":{"docs":{},"具":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"注":{"docs":{},"册":{"docs":{},"方":{"docs":{},"法":{"docs":{},"即":{"docs":{},"可":{"docs":{},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"与":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"式":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"最":{"docs":{},"小":{"docs":{},"值":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"路":{"docs":{},"径":{"docs":{},"上":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"数":{"docs":{},"据":{"docs":{},"来":{"docs":{},"源":{"docs":{},"都":{"docs":{},"是":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"添":{"docs":{},"加":{"docs":{},"上":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"都":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"满":{"docs":{},"足":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"表":{"docs":{},"达":{"docs":{},"性":{"docs":{},"很":{"docs":{},"差":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"全":{"docs":{},"局":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"性":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"作":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"错":{"docs":{},"误":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"动":{"docs":{},"态":{"docs":{},"函":{"docs":{},"数":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"真":{"docs":{},"正":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"里":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"方":{"docs":{},"便":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"顶":{"docs":{},"级":{"docs":{},"包":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"其":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"包":{"docs":{},"只":{"docs":{},"来":{"docs":{},"自":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}},"填":{"docs":{},"充":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"除":{"docs":{},"了":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"述":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"把":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"docs":{}}},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0005911912503694946}}}},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"docs":{}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"n":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"\"":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"s":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"r":{"docs":{},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"h":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"i":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"#":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.11320754716981132},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.020833333333333332}}},"$":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.030660377358490566},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/start.html":{"ref":"topics/start.html","tf":0.03125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"g":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"/":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"{":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},".":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"1":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"docs":{}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.0380952380952381},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"*":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"/":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"/":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},":":{"docs":{},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"docs":{}}}}}}},"/":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.05009633911368015},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.09056603773584905},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.05952380952380952},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.047619047619047616},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.04938271604938271},"concepts/context.html":{"ref":"concepts/context.html","tf":0.09289617486338798},"concepts/source.html":{"ref":"concepts/source.html","tf":0.058823529411764705},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.09326424870466321},"concepts/error.html":{"ref":"concepts/error.html","tf":0.03139013452914798},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.0794392523364486},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.024464831804281346},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.04838709677419355},"topics/log.html":{"ref":"topics/log.html","tf":0.11611374407582939},"topics/errors.html":{"ref":"topics/errors.html","tf":0.10392609699769054},"topics/definition.html":{"ref":"topics/definition.html","tf":0.12545126353790614},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.10457516339869281},"topics/router.html":{"ref":"topics/router.html","tf":0.07508532423208192},"topics/service.html":{"ref":"topics/service.html","tf":0.08742514970059881},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.08681672025723473},"topics/config.html":{"ref":"topics/config.html","tf":0.10802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.07272727272727272},"topics/utils.html":{"ref":"topics/utils.html","tf":0.09810479375696766},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.02601241501625776},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"z":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"重":{"docs":{},"定":{"docs":{},"向":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"就":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"2":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"/":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}},"docs":{}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.10344827586206896},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"[":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}},"=":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422},"topics/definition.html":{"ref":"topics/definition.html","tf":0.026173285198555957},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0026603606266627253}},"=":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.018475750577367205},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"(":{"docs":{},"&":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},":":{"1":{"6":{"3":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"7":{"8":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"s":{"docs":{},"n":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}}},"y":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"l":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.03278688524590164},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"s":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"i":{"docs":{},"e":{"docs":{},"f":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"d":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/start.html":{"ref":"topics/start.html","tf":0.015625}}},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/command.html":{"ref":"topics/command.html","tf":10.004201680672269}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0023647650014779783}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05963302752293578},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},")":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":10.010928961748634},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}}},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"u":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"2":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},")":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.384009009009009},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.049019607843137254},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.06542056074766354},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":10.01388888888889},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0035471475022169673},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"a":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.14705882352941177},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01929260450160772},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.004138338752586462},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"b":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},":":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}},"d":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0026603606266627253}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"s":{"docs":{},".":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"i":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},"}":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}}},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"注":{"docs":{},"释":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"要":{"docs":{},"对":{"docs":{},"注":{"docs":{},"释":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"注":{"docs":{},"释":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"a":{"docs":{},"m":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.042483660130718956},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}}}}}}}}}}}}},"v":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":10.04054054054054}},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.027707808564231738},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168}},":":{"1":{"0":{"6":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}},"7":{"3":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"8":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"g":{"docs":{},"o":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"而":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.02287581699346405},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.037037037037037035},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0011823825007389892}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"./":{"ref":"./","tf":0.0005911912503694946}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"f":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"g":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},")":{"docs":{},"`":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.015414258188824663},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.12380952380952381},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/definition.html":{"ref":"topics/definition.html","tf":10.016245487364621},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"2":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"docs":{}},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"{":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"开":{"docs":{},"发":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"会":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"则":{"docs":{},"是":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/method.html":{"ref":"topics/method.html","tf":10}}}}}}}}},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.00325155187703222},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"=":{"docs":{},"{":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"(":{"docs":{},")":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"./":{"ref":"./","tf":0.00650310375406444},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0073898906296186815}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"然":{"docs":{},"后":{"docs":{},"动":{"docs":{},"态":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}},":":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.0029559562518474726}}}}},"i":{"docs":{},"d":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.010362694300518},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"a":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"o":{"docs":{},"c":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"s":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"n":{"docs":{},"e":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"'":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0029559562518474726},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"docs":{}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"a":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"b":{"docs":{},"e":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05045871559633028},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.004729530002955957},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},"u":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},",":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"则":{"docs":{},"认":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"。":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}}}},"r":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02702702702702703},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.0038427431274017146},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}},"o":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.07623318385650224},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":10.057736720554272},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.007685486254803429},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.013207547169811321},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"s":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"比":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"多":{"docs":{},"出":{"docs":{},"更":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"t":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"s":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.005025125628140704},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{},":":{"6":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"2":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}}}}},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":10.119047619047619},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0005911912503694946}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/utils.html":{"ref":"topics/utils.html","tf":0.020066889632107024},"./":{"ref":"./","tf":0.0011823825007389892}},"a":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.0002955956251847473}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"x":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0017735737511084836},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}}}}}},"o":{"docs":{},"m":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"k":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"u":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.020151133501259445},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.052830188679245285},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.037383177570093455},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0375},"topics/validator.html":{"ref":"topics/validator.html","tf":0.049019607843137254},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.02572347266881029},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.04},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"d":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"l":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},":":{"docs":{},".":{"docs":{},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"*":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.02771362586605081},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946}}},"。":{"docs":{},"也":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"类":{"docs":{},"表":{"docs":{},"示":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}},"s":{"docs":{},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"通":{"docs":{},"过":{"docs":{},"外":{"docs":{},"部":{"docs":{},"选":{"docs":{},"项":{"docs":{},"来":{"docs":{},"改":{"docs":{},"变":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"(":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{},"*":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},"f":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}},"l":{"docs":{},"n":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}}}}}}}}}}}}},")":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"(":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.009433962264150943},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.02185792349726776},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01818181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"得":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"1":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"u":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"2":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"2":{"0":{"4":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"(":{"2":{"0":{"0":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"请":{"docs":{},"求":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}},"。":{"docs":{},"如":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"您":{"docs":{},"明":{"docs":{},"确":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"l":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"`":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0017735737511084836}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.025906735751295335},"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.0880829015544045},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"这":{"docs":{},"些":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"同":{"docs":{},"等":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"闭":{"docs":{},"包":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"必":{"docs":{},"要":{"docs":{},"文":{"docs":{},"件":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{}},"3":{"2":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.01437125748502994},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{"./":{"ref":"./","tf":10}}}}}}}}},"f":{"docs":{},"o":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0026603606266627253},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"r":{"docs":{},"m":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"|":{"docs":{},"l":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"i":{"docs":{},"p":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"k":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"g":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":10.045023696682465},"./":{"ref":"./","tf":0.0014779781259237363}},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.023696682464454975}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"(":{"4":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"docs":{}}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.018957345971563982},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"l":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"输":{"docs":{},"出":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"k":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"w":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"a":{"docs":{},"d":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"k":{"docs":{},"e":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"e":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"会":{"docs":{},"写":{"docs":{},"入":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"]":{"docs":{},"*":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"h":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"3":{"2":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"docs":{}},"docs":{}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/error.html":{"ref":"concepts/error.html","tf":0.017937219730941704},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.004729530002955957},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01607717041800643},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0053207212533254505},"topics/metrics.html":{"ref":"topics/metrics.html","tf":10.03125}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}}},"d":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":10.024691358024691},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"i":{"docs":{},"f":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":10.095238095238095},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"u":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}}}},"e":{"docs":{},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"r":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}},":":{"docs":{},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}}},"docs":{}}},"docs":{}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"l":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"2":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"s":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"k":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"p":{"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":5.011764705882353},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0073898906296186815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.002069169376293231}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"s":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}}}},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0026603606266627253}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"s":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0014779781259237363}}}},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"k":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.03125},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}}}}}}}},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":10.095238095238095},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}},"启":{"docs":{},"用":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"名":{"docs":{},"称":{"docs":{},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.377252252252252},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0029559562518474726}},"e":{"docs":{},"(":{"docs":{},"w":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"他":{"docs":{},"们":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"和":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"s":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"x":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"o":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"?":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"u":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/method.html":{"ref":"topics/method.html","tf":0.05660377358490566},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"a":{"docs":{},"y":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}},".":{"docs":{},"v":{"9":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"./":{"ref":"./","tf":0.007685486254803429},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.024305555555555556}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}},"e":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"判":{"docs":{},"断":{"docs":{},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},".":{"docs":{},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"`":{"docs":{},"^":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"o":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"r":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"q":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.03571428571428571},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.025454545454545455},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{},"可":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/rest.html":{"ref":"topics/rest.html","tf":10.018181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004433934377771209}},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.020754716981132074},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.04918032786885246},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.027544910179640718},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.032407407407407406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"l":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0023647650014779783},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":10.041666666666666}},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"=":{"docs":{},"\"":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},"\"":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":10.009580838323354},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":10}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"./":{"ref":"./","tf":0.0017735737511084836}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"n":{"docs":{},"s":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.016587677725118485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0026603606266627253}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"。":{"docs":{},"值":{"docs":{},"使":{"docs":{},"用":{"docs":{},"逗":{"docs":{},"号":{"docs":{},"分":{"docs":{},"隔":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"参":{"docs":{},"数":{"docs":{},"来":{"docs":{},"源":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"表":{"docs":{},"示":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"(":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"[":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},".":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.016339869281045753},"topics/router.html":{"ref":"topics/router.html","tf":0.034129692832764506},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.004729530002955957},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.026415094339622643},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.125},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},"/":{"docs":{},"[":{"docs":{},"]":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.014492753623188406},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"{":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"a":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},".":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"a":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"b":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"v":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673}},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"h":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},"w":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"m":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"n":{"docs":{},"i":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"u":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.008572273130357671},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"r":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"x":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"b":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"docs":{}},"3":{"2":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":10.002229654403568}}}}}},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.01650943396226415},"guides/client.html":{"ref":"guides/client.html","tf":0.022670025188916875},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"2":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"a":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.04150943396226415},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.1503267973856209},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.008276677505172924},"topics/validation.html":{"ref":"topics/validation.html","tf":10.040697674418604}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}},"docs":{}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"u":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/config.html":{"ref":"topics/config.html","tf":0.035493827160493825},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.005616316878510198}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"是":{"docs":{},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"a":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"│":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.10141509433962265},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.03537735849056604},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.04009433962264151},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}}}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"是":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"样":{"docs":{},"板":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"如":{"docs":{},"何":{"docs":{},"放":{"docs":{},"到":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"表":{"docs":{},"现":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"每":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"直":{"docs":{},"接":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"位":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"与":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}},"添":{"docs":{},"加":{"docs":{},"在":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}},"携":{"docs":{},"带":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"也":{"docs":{},"经":{"docs":{},"常":{"docs":{},"看":{"docs":{},"到":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"组":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"是":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"任":{"docs":{},"何":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"目":{"docs":{},"前":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"添":{"docs":{},"加":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"为":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"径":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"时":{"docs":{},"不":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},"包":{"docs":{},"含":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"实":{"docs":{},"例":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"传":{"docs":{},"递":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"的":{"docs":{},"公":{"docs":{},"开":{"docs":{},"字":{"docs":{},"段":{"docs":{},"根":{"docs":{},"据":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"规":{"docs":{},"则":{"docs":{},"参":{"docs":{},"考":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},")":{"docs":{},"从":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"印":{"docs":{},"表":{"docs":{},"格":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"为":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"所":{"docs":{},"有":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.047619047619047616}},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"演":{"docs":{},"示":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"构":{"docs":{},"建":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"端":{"docs":{},"口":{"docs":{},"是":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"设":{"docs":{},"置":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"读":{"docs":{},"取":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"从":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"显":{"docs":{},"得":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"上":{"docs":{},"所":{"docs":{},"有":{"docs":{},"节":{"docs":{},"点":{"docs":{},"按":{"docs":{},"照":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"串":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"并":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"上":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"由":{"docs":{},"命":{"docs":{},"令":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"范":{"docs":{},"例":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"比":{"docs":{},"较":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}},"修":{"docs":{},"改":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"前":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},",":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"时":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"非":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{},"里":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"安":{"docs":{},"装":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},"自":{"docs":{},"带":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"账":{"docs":{},"户":{"docs":{},"下":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"下":{"docs":{},"载":{"docs":{},"源":{"docs":{},"码":{"docs":{},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"开":{"docs":{},"发":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"从":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"增":{"docs":{},"加":{"docs":{},"相":{"docs":{},"应":{"docs":{},"字":{"docs":{},"段":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"应":{"docs":{},"该":{"docs":{},"使":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"值":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"当":{"docs":{},"前":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"定":{"docs":{},"义":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"考":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"会":{"docs":{},"打":{"docs":{},"印":{"docs":{},"出":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"用":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"或":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"双":{"docs":{},"重":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"即":{"docs":{},"请":{"docs":{},"求":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"结":{"docs":{},"束":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"示":{"docs":{},"源":{"docs":{},"地":{"docs":{},"址":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"向":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"启":{"docs":{},"动":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"编":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"单":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"包":{"docs":{},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.05405405405405406},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"一":{"docs":{},"个":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"插":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"是":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"配":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},",":{"docs":{},"为":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"如":{"docs":{},"果":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"命":{"docs":{},"令":{"docs":{},"扩":{"docs":{},"展":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"类":{"docs":{},"型":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}}},"以":{"docs":{},"下":{"docs":{},"路":{"docs":{},"径":{"docs":{},"都":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"正":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"希":{"docs":{},"望":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"读":{"docs":{},"取":{"docs":{},"到":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"下":{"docs":{},":":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"字":{"docs":{},"段":{"docs":{},"无":{"docs":{},"效":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"进":{"docs":{},"行":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"在":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"必":{"docs":{},"须":{"docs":{},"与":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"存":{"docs":{},"放":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.014150943396226415}},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"启":{"docs":{},"动":{"docs":{},"命":{"docs":{},"令":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"在":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"再":{"docs":{},"对":{"docs":{},"应":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"更":{"docs":{},"加":{"docs":{},"明":{"docs":{},"确":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"根":{"docs":{},"据":{"docs":{},"场":{"docs":{},"景":{"docs":{},"确":{"docs":{},"定":{"docs":{},"使":{"docs":{},"用":{"docs":{},"哪":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"的":{"docs":{},"可":{"docs":{},"读":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"无":{"docs":{},"关":{"docs":{},"性":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"不":{"docs":{},"能":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"任":{"docs":{},"何":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"上":{"docs":{},"添":{"docs":{},"加":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"之":{"docs":{},"后":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"在":{"docs":{},"容":{"docs":{},"器":{"docs":{},"内":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"打":{"docs":{},"包":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"看":{"docs":{},"到":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"无":{"docs":{},"效":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"错":{"docs":{},"误":{"docs":{},"能":{"docs":{},"够":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"或":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"域":{"docs":{},"名":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"与":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},"打":{"docs":{},"包":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"符":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"构":{"docs":{},"建":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"服":{"docs":{},"务":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"只":{"docs":{},"能":{"docs":{},"填":{"docs":{},"写":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"打":{"docs":{},"开":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"因":{"docs":{},"此":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"启":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"性":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"路":{"docs":{},"径":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"则":{"docs":{},"根":{"docs":{},"据":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"一":{"docs":{},"段":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"限":{"docs":{},"制":{"docs":{},":":{"docs":{},"只":{"docs":{},"能":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"确":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"此":{"docs":{},"时":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"每":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"服":{"docs":{},"务":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"份":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{},"在":{"docs":{},"一":{"docs":{},"起":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"内":{"docs":{},"容":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"互":{"docs":{},"相":{"docs":{},"之":{"docs":{},"间":{"docs":{},"不":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}},"比":{"docs":{},"如":{"docs":{},"设":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"命":{"docs":{},"令":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"演":{"docs":{},"示":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":10.025}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"规":{"docs":{},"则":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"识":{"docs":{},"别":{"docs":{},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"签":{"docs":{},"名":{"docs":{},"没":{"docs":{},"有":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"暴":{"docs":{},"露":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"服":{"docs":{},"务":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"常":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"合":{"docs":{},"并":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"真":{"docs":{},"正":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"分":{"docs":{},"析":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"表":{"docs":{},"示":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},",":{"docs":{},"则":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"运":{"docs":{},"行":{"docs":{},"一":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"开":{"docs":{},"启":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"中":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"前":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"还":{"docs":{},"不":{"docs":{},"完":{"docs":{},"善":{"docs":{},",":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"对":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"编":{"docs":{},"译":{"docs":{},"并":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"写":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"范":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}},"语":{"docs":{},"言":{"docs":{},"版":{"docs":{},"本":{"docs":{},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"到":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"。":{"docs":{},"为":{"docs":{},"空":{"docs":{},"时":{"docs":{},"不":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"替":{"docs":{},"换":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"版":{"docs":{},"本":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"程":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"声":{"docs":{},"明":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"本":{"docs":{},"地":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"包":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"之":{"docs":{},"后":{"docs":{},"则":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},",":{"docs":{},"并":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.05714285714285714}},"字":{"docs":{},"段":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"替":{"docs":{},"换":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"空":{"docs":{},"格":{"docs":{},"后":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"这":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"是":{"docs":{},"有":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"工":{"docs":{},"具":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"判":{"docs":{},"断":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808}}}},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}},"插":{"docs":{},"件":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"三":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},":":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"包":{"docs":{},"方":{"docs":{},"便":{"docs":{},"了":{"docs":{},"用":{"docs":{},"户":{"docs":{},"创":{"docs":{},"建":{"docs":{},"能":{"docs":{},"够":{"docs":{},"被":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"分":{"docs":{},"离":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"对":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"用":{"docs":{},"特":{"docs":{},"例":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"快":{"docs":{},"速":{"docs":{},"进":{"docs":{},"行":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"添":{"docs":{},"加":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"以":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"就":{"docs":{},"表":{"docs":{},"示":{"docs":{},"文":{"docs":{},"档":{"docs":{},"生":{"docs":{},"成":{"docs":{},"成":{"docs":{},"功":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"够":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"都":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"套":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"进":{"docs":{},"行":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"装":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"正":{"docs":{},"确":{"docs":{},"层":{"docs":{},"级":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"的":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"决":{"docs":{},"定":{"docs":{},"请":{"docs":{},"求":{"docs":{},"是":{"docs":{},"否":{"docs":{},"继":{"docs":{},"续":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"提":{"docs":{},"供":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}},"任":{"docs":{},"何":{"docs":{},"更":{"docs":{},"新":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},"工":{"docs":{},"具":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"两":{"docs":{},"个":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"业":{"docs":{},"务":{"docs":{},"有":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"包":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"退":{"docs":{},"出":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"些":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}},"了":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"器":{"docs":{},"机":{"docs":{},"制":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":10.009803921568627}}}}},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}},"镜":{"docs":{},"像":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"[":{"docs":{},":":{"docs":{},"模":{"docs":{},"块":{"docs":{},"名":{"docs":{},"]":{"docs":{},":":{"docs":{},"错":{"docs":{},"误":{"docs":{},"名":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"目":{"docs":{},"录":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":10.002358490566039}}}}}}}},"负":{"docs":{},"责":{"docs":{},"人":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"配":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"将":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"看":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"部":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"时":{"docs":{},"添":{"docs":{},"加":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"}":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"{":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"&":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.333333333333333}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"{":{"docs":{},"}":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"(":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}},"*":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"t":{"docs":{},"x":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"m":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},"docs":{}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"b":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},".":{"docs":{},"r":{"docs":{},".":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},":":{"8":{"0":{"8":{"0":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"=":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454},"./":{"ref":"./","tf":0.005616316878510198},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"[":{"0":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"5":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"f":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"docs":{}},"docs":{}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"docs":{}},"docs":{}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0011823825007389892}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"{":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"m":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0029559562518474726}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"*":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"i":{"docs":{},"d":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},"`":{"docs":{},"/":{"docs":{},"`":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}},"t":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/config.html":{"ref":"topics/config.html","tf":0.043209876543209874},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363}}},"y":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"k":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.018867924528301886},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.06735751295336788},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.02888086642599278},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.05},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.030716723549488054},"topics/service.html":{"ref":"topics/service.html","tf":0.03592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.046822742474916385},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.01300620750812888},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}}}}},":":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0008867868755542418}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"让":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"s":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"s":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"设":{"docs":{},"置":{"docs":{},"当":{"docs":{},"前":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"./":{"ref":"./","tf":0.0008867868755542418}},"r":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"d":{"docs":{},"o":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"w":{"docs":{},"o":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"b":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}},"r":{"docs":{},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"y":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.037815126050420166},"./":{"ref":"./","tf":0.015370972509606859},"topics/routes.html":{"ref":"topics/routes.html","tf":0.041666666666666664},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"}":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.017341040462427744},"guides/client.html":{"ref":"guides/client.html","tf":0.04534005037783375},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.04201680672268908},"./":{"ref":"./","tf":0.012415016257759386},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.05},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}},"与":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"名":{"docs":{},"称":{"docs":{},"无":{"docs":{},"关":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"类":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"任":{"docs":{},"何":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"件":{"docs":{},"事":{"docs":{},"情":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"上":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"外":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"十":{"docs":{},"分":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"设":{"docs":{},"置":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"取":{"docs":{},"得":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"中":{"docs":{},"确":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"使":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"始":{"docs":{},"终":{"docs":{},"建":{"docs":{},"议":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"这":{"docs":{},"样":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"时":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"等":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"呈":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"作":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{},"一":{"docs":{},"旦":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"即":{"docs":{},"使":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"发":{"docs":{},"生":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"加":{"docs":{},"载":{"docs":{},"时":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"例":{"docs":{},"值":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"意":{"docs":{},"义":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"值":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"放":{"docs":{},"到":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"放":{"docs":{},"置":{"docs":{},"到":{"docs":{},"全":{"docs":{},"局":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"成":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"删":{"docs":{},"除":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"既":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"里":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"通":{"docs":{},"过":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}},"构":{"docs":{},"建":{"docs":{},"带":{"docs":{},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"在":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"结":{"docs":{},"构":{"docs":{},"对":{"docs":{},"象":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"使":{"docs":{},"用":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"被":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"名":{"docs":{},"称":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"因":{"docs":{},"为":{"docs":{},"只":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"始":{"docs":{},"终":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"。":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"错":{"docs":{},"误":{"docs":{},"仅":{"docs":{},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"异":{"docs":{},"步":{"docs":{},"修":{"docs":{},"改":{"docs":{},"资":{"docs":{},"源":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"删":{"docs":{},"除":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"发":{"docs":{},"出":{"docs":{},"后":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"是":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"加":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"或":{"docs":{},"者":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"供":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"后":{"docs":{},"续":{"docs":{},"查":{"docs":{},"询":{"docs":{},"请":{"docs":{},"求":{"docs":{},"执":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"就":{"docs":{},"要":{"docs":{},"求":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"必":{"docs":{},"须":{"docs":{},"放":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"功":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"以":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"口":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"即":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"如":{"docs":{},"果":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"征":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"携":{"docs":{},"带":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"关":{"docs":{},"于":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"现":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"跟":{"docs":{},"踪":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},":":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"显":{"docs":{},"式":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"收":{"docs":{},"配":{"docs":{},"置":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"些":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"方":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"下":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"据":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"方":{"docs":{},"法":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"比":{"docs":{},"如":{"docs":{},"某":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"包":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":10.004587155963304}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"就":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"都":{"docs":{},"是":{"docs":{},"语":{"docs":{},"义":{"docs":{},"层":{"docs":{},"面":{"docs":{},"的":{"docs":{},",":{"docs":{},"为":{"docs":{},"的":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"得":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}},"一":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"二":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"对":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"直":{"docs":{},"接":{"docs":{},"创":{"docs":{},"建":{"docs":{},"出":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"安":{"docs":{},"装":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"验":{"docs":{},"证":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"种":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"插":{"docs":{},"件":{"docs":{},"允":{"docs":{},"许":{"docs":{},"插":{"docs":{},"件":{"docs":{},"设":{"docs":{},"置":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"无":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"时":{"docs":{},"候":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"不":{"docs":{},"能":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"多":{"docs":{},"个":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"资":{"docs":{},"源":{"docs":{},"唯":{"docs":{},"一":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"添":{"docs":{},"加":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353}},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"匹":{"docs":{},"配":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}},"到":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"类":{"docs":{},"型":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"名":{"docs":{},"称":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"一":{"docs":{},"般":{"docs":{},"不":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"被":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"变":{"docs":{},"成":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"组":{"docs":{},"合":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"具":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"列":{"docs":{},"表":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"里":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":10.023809523809524}},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"追":{"docs":{},"踪":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":10.016129032258064}},"基":{"docs":{},"于":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"返":{"docs":{},"回":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"自":{"docs":{},"动":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"的":{"docs":{},"是":{"docs":{},"资":{"docs":{},"源":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"回":{"docs":{},"去":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"是":{"docs":{},"否":{"docs":{},"健":{"docs":{},"康":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"出":{"docs":{},"去":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"遵":{"docs":{},"守":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"里":{"docs":{},"取":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"的":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"文":{"docs":{},"本":{"docs":{},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"链":{"docs":{},"接":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":10.004484304932735}}}}},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"在":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"生":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"四":{"docs":{},"个":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"了":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"路":{"docs":{},"径":{"docs":{},"为":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.0054945054945055}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":10.030188679245283},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01444043321299639},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":10}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":10},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0014779781259237363}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"(":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}},"。":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/config.html":{"ref":"topics/config.html","tf":0.020061728395061727},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"m":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.016981132075471698},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"o":{"docs":{},"f":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"v":{"2":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"docs":{}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}}}},"docs":{}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"s":{"docs":{},")":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"|":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"公":{"docs":{},"开":{"docs":{},"给":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}},"共":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"构":{"docs":{},"建":{"docs":{},",":{"docs":{},"而":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"查":{"docs":{},"看":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"成":{"docs":{},"为":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"且":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"一":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"从":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{},"之":{"docs":{},"前":{"docs":{},"让":{"docs":{},"用":{"docs":{},"户":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"而":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"生":{"docs":{},"成":{"docs":{},"服":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"一":{"docs":{},"些":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"交":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"代":{"docs":{},"码":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":10.002518891687657},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"是":{"docs":{},"版":{"docs":{},"本":{"docs":{},"化":{"docs":{},"的":{"docs":{},",":{"docs":{},"版":{"docs":{},"本":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"两":{"docs":{},"者":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"新":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},",":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"器":{"docs":{},"这":{"docs":{},"个":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"特":{"docs":{},"定":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"而":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"读":{"docs":{},"基":{"docs":{},"本":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"则":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"效":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"对":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"端":{"docs":{},"口":{"docs":{},"提":{"docs":{},"供":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"防":{"docs":{},"止":{"docs":{},"端":{"docs":{},"口":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"名":{"docs":{},"称":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"该":{"docs":{},"命":{"docs":{},"令":{"docs":{},"不":{"docs":{},"会":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"输":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"日":{"docs":{},"志":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"会":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"!":{"docs":{},"=":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0014779781259237363},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.03536977491961415},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}}}}}}}}}},"v":{"1":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}},"/":{"docs":{},"*":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},".":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"来":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":10.003058103975535}},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"尚":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},")":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"指":{"docs":{},"定":{"docs":{},"其":{"docs":{},"他":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"良":{"docs":{},"好":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"以":{"docs":{},"供":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"限":{"docs":{},"制":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"x":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"m":{"docs":{},"l":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"取":{"docs":{},"得":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"会":{"docs":{},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"框":{"docs":{},"架":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"在":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"就":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"这":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"还":{"docs":{},"有":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"些":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"私":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"插":{"docs":{},"件":{"docs":{},"应":{"docs":{},"该":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"件":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"则":{"docs":{},"负":{"docs":{},"责":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"转":{"docs":{},"换":{"docs":{},"等":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"更":{"docs":{},"加":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"化":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"被":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"由":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"注":{"docs":{},"册":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"包":{"docs":{},"装":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"一":{"docs":{},"组":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"个":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"用":{"docs":{},"于":{"docs":{},"校":{"docs":{},"验":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"方":{"docs":{},"法":{"docs":{},"注":{"docs":{},"册":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"进":{"docs":{},"行":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"包":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"是":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"插":{"docs":{},"件":{"docs":{},"能":{"docs":{},"力":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}},"括":{"docs":{},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"占":{"docs":{},"位":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"值":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"对":{"docs":{},"应":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"分":{"docs":{},"离":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"基":{"docs":{},"础":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"共":{"docs":{},"工":{"docs":{},"具":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{},"采":{"docs":{},"集":{"docs":{},"端":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"包":{"docs":{},"含":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"多":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"基":{"docs":{},"于":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"际":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"如":{"docs":{},"下":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"的":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"之":{"docs":{},"所":{"docs":{},"以":{"docs":{},"不":{"docs":{},"复":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"类":{"docs":{},"型":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"稍":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"包":{"docs":{},"含":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"进":{"docs":{},"行":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"路":{"docs":{},"由":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"和":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"其":{"docs":{},"他":{"docs":{},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"的":{"docs":{},"包":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"借":{"docs":{},"助":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}},"会":{"docs":{},"从":{"docs":{},"以":{"docs":{},"下":{"docs":{},"文":{"docs":{},"件":{"docs":{},"列":{"docs":{},"表":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"包":{"docs":{},"都":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"简":{"docs":{},"单":{"docs":{},"很":{"docs":{},"多":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"里":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"去":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"名":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"际":{"docs":{},"上":{"docs":{},"要":{"docs":{},"填":{"docs":{},"写":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"只":{"docs":{},"与":{"docs":{},"自":{"docs":{},"身":{"docs":{},"业":{"docs":{},"务":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"例":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"将":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"它":{"docs":{},"的":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"写":{"docs":{},"入":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"找":{"docs":{},"到":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"才":{"docs":{},"算":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},":":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"包":{"docs":{},"里":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"户":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"上":{"docs":{},"每":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"都":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"注":{"docs":{},"册":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"空":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"身":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"快":{"docs":{},"速":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"过":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},"指":{"docs":{},"定":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"常":{"docs":{},"规":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{},"签":{"docs":{},"名":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"尾":{"docs":{},"部":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"收":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"用":{"docs":{},"于":{"docs":{},"单":{"docs":{},"独":{"docs":{},"配":{"docs":{},"置":{"docs":{},"每":{"docs":{},"一":{"docs":{},"项":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"本":{"docs":{},"身":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"确":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"处":{"docs":{},"理":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"启":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"将":{"docs":{},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"用":{"docs":{},"于":{"docs":{},"接":{"docs":{},"收":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"(":{"docs":{},"都":{"docs":{},"是":{"docs":{},"指":{"docs":{},"针":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"值":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"下":{"docs":{},"查":{"docs":{},"看":{"docs":{},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}},"面":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"来":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"一":{"docs":{},"些":{"docs":{},"附":{"docs":{},"加":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},">":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"且":{"docs":{},"成":{"docs":{},"功":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"按":{"docs":{},"照":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{},"链":{"docs":{},"继":{"docs":{},"续":{"docs":{},"传":{"docs":{},"递":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"经":{"docs":{},"由":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"去":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"才":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"而":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}},"负":{"docs":{},"责":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"大":{"docs":{},"致":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},"并":{"docs":{},"不":{"docs":{},"足":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},"繁":{"docs":{},"复":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}},"视":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"大":{"docs":{},"类":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"带":{"docs":{},"有":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"资":{"docs":{},"源":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"或":{"docs":{},"者":{"docs":{},"找":{"docs":{},"不":{"docs":{},"到":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"大":{"docs":{},"类":{"docs":{},"下":{"docs":{},"定":{"docs":{},"义":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"他":{"docs":{},"与":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"具":{"docs":{},"体":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"证":{"docs":{},"书":{"docs":{},"和":{"docs":{},"密":{"docs":{},"钥":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"机":{"docs":{},"制":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":10.004672897196262}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"整":{"docs":{},"合":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"区":{"docs":{},"别":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"统":{"docs":{},"一":{"docs":{},"网":{"docs":{},"关":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"暴":{"docs":{},"露":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"模":{"docs":{},"式":{"docs":{},"后":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":10.014492753623188}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"伪":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"按":{"docs":{},"照":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}},"列":{"docs":{},"包":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"包":{"docs":{},"含":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"上":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"打":{"docs":{},"印":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"。":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"提":{"docs":{},"取":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"监":{"docs":{},"控":{"docs":{},"指":{"docs":{},"标":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":10.027027027027026}},"基":{"docs":{},"于":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"采":{"docs":{},"集":{"docs":{},"指":{"docs":{},"标":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"的":{"docs":{},"提":{"docs":{},"取":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"前":{"docs":{},"缀":{"docs":{},"路":{"docs":{},"径":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}},"性":{"docs":{},"能":{"docs":{},"分":{"docs":{},"析":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":10.03448275862069}},"添":{"docs":{},"加":{"docs":{},"与":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"值":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}}}}}}}},"健":{"docs":{},"康":{"docs":{},"检":{"docs":{},"查":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":10.027777777777779}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}},"应":{"docs":{},"该":{"docs":{},"返":{"docs":{},"回":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":10.0078125}}}}}},"另":{"docs":{},"外":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"大":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{},"即":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"字":{"docs":{},"段":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"具":{"docs":{},"介":{"docs":{},"绍":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"持":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"变":{"docs":{},"更":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"标":{"docs":{},"准":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"识":{"docs":{},"别":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"中":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"引":{"docs":{},"入":{"docs":{},"对":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"容":{"docs":{},"器":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"和":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"验":{"docs":{},"证":{"docs":{},"方":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"这":{"docs":{},"些":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"z":{"docs":{},"]":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"*":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"正":{"docs":{},"则":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"余":{"docs":{},"路":{"docs":{},"径":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"完":{"docs":{},"成":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"也":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"就":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"掉":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"↑":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293}}},"↓":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497}}},"处":{"docs":{},"理":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"等":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"还":{"docs":{},"会":{"docs":{},"将":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"针":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"是":{"docs":{},"针":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"p":{"docs":{},"'":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}},"g":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"了":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"于":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"要":{"docs":{},"求":{"docs":{},"每":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"用":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}},"\\":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"t":{"docs":{},"]":{"docs":{},"*":{"docs":{},"=":{"docs":{},"(":{"docs":{},".":{"docs":{},"*":{"docs":{},")":{"docs":{},"$":{"docs":{},"`":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"\\":{"docs":{},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"反":{"docs":{},"序":{"docs":{},"列":{"docs":{},"化":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"可":{"docs":{},"读":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"。":{"docs":{},"两":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"上":{"docs":{},"述":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"%":{"docs":{},"s":{"docs":{},":":{"docs":{},"%":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"o":{"docs":{},"u":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"length":6934},"corpusTokens":["!=","\"\"","\"\",","\"${customer}","\"${name}","\"${user}","\"*/*\"","\"*/*\".","\"/\",","\"/api\",","\"/api/v1\",","\"/api/v1/some\".","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"/apis/v1/someapi\"","\"/child\",","\"/echo\",","\"/messages\",","\"/messages/{message}\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"accept\"","\"accept\".","\"alias\"","\"alice\",","\"apach","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"boilerplate\",","\"build","\"clientset/svca\"","\"clientset/svcb\"","\"content","\"context\"","\"context\",","\"converter\"","\"converter\"}","\"correspond","\"count\",","\"creat","\"create\"","\"custom\"","\"data\"","\"debian:jessie\",","\"delete\"","\"descriptors\"","\"docker","\"echo","\"error","\"error\"","\"exampl","\"fatal\"","\"file\"","\"first","\"form\"","\"get","\"get\"","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"github.com/caicloud/nirvana/rest\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"header\"","\"hello","\"here","\"http\"","\"http\",","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https\".","\"https://gonirvana.io\",","\"imag","\"info\"","\"init","\"list","\"list\"","\"listmessages\"),","\"localhost:8080\",","\"messag","\"message\":","\"meta\"","\"method","\"methodname\")","\"modifiers\"","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"myproject/client/v1\"","\"nirvana","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"number","\"openapi","\"origin\"","\"patch\"","\"path","\"path\"","\"pluginname\"","\"prefab\"","\"queri","\"query\"","\"registries\",","\"result","\"runtim","\"second","\"source\".","\"source,name\".","\"struct\"","\"text/plain\"","\"there","\"thi","\"update\"","\"v0.1.0\",","\"v1.0.0\",","\"valid","\"validator\"","\"validator\"}","\"var\"","\"version\",","\"warn\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/clientset","$gopath/src/myproject","$gopath/src/svca","$gopath/src/svcb","$path","${customer})","${id}\")","${name}","%s:%d\",","&&","&clientset{}","&client{","&client{client},","&client{}","&cobra.command{","&common.config{","&container{title,","&container{}","&initoptions{}","&message{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'content","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'myconfig.name.firstname'.","'nirvana.ip'","'{\"name\":","(","(*api.definitions,","(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(*client,","(*container)(nil)","(*definitions,","(*http.response,","(*message,","(*spec.swagger,","(*types.package,","([]message,","([]string,","(a","(ac","(against","(and","(anytype,","(apachebench)","(b","(bool,","(builder","(c","(checkout","(ctx","(e.g.","(executor,","(exported)","(from","(goon","(i","(in","(includ","(interface,","(interface{},","(m","(messag","(message1","(multipart.file,","(o","(or","(pem","(r","(reader","(response,","(service,","(string,","(types.object,","(uint,","(unexported)","(w.r.t","(with",")","*","*/*","*/*。","*analyz","*analyzer)","*api.message)","*apibuild","*apibuilder)","*ast.commentgroup","*body)","*client","*client)","*clientset)","*cobra.command","*cobra.command)","*cobra.command,","*comment","*config","*config)","*contain","*container)","*converterforanobject)","*definition.definition)","*http.request","*http.request)","*initoptions)","*int,","*map[string]string)","*message,","*message.contain","*nirvana.config)","*pflag.flagset)","*plugininstaller)","*regexp.regexp","*request","*request)","*rest.client","*rest.config)","*string).","*v1.client","*validatorforanobject)","+caicloud:openapi=tru","+nirvana:api=option:\"value\"。","+nirvana:openapi=tru",".",".*:","...","...configurer)","...customoption)","...definition.descriptor)","...filter)","...interface{})","...plugin)","...service.definitionmodifier)","...service.filter)","...string)","../clientset/svca","../clientset/svcb","./","./bin/myproject","./build/myproject/dockerfil","./client","./client.go","./config/","./examples/get","./myproject","./v1/client.go","./v1/types.go","/","//","/apis/v1","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/resourc","/apis/v1/resources/{resource}","/apis/v1/{regexp:[a","/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","/echo","/echo,","/echo[?msg=]","/etc/nirvana/","/go/package/to/your/generated/funct","/go/package/to/your/typ","/healthz","/healthz。","/home/go/src/myproject","/metric","/path","/path/path2","/path/path2/oth","/path/to/project\",","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","/version","/version。","/。","/,如果存在就重定向到没有","/,如果没有就加上","0","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0.","0202","0702","0;","1","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","1.","1.10.x","1.11)中,若项目处于","1.9.x","10","10)","10,","100","100)","1000","1000,","101","101\",\"data\":{\"id\":\"101\"}}","11","11.2","11.3","11.4","11.5","11:18:50.235+08","126","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","16:34:38.663+08","1:","1,并且把","2","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","2.","2.0","2.0\",","2.3.3","200","200,","201","202","204","2295,","260","2774,","28","2:","2>&1","3","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","3.","3.1","3.2","300","4","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","4.","4.2","4.4","404","41","48533","4918,","5","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","5.","500","500,","50554","507","53","55","5842,","6","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","6.","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","7.2","7168,","7231,","7232,","7233,","7235,","73","7725,","8","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","8.1","8080","8080).","8080:8080","8080。","89","9\",\"content\":\"method","9\"}]","90","90m.","98","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[5,","[]*ast.commentgroup","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","[]consumer,","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.middleware{somemiddleware},","[]def.operator{","[]def.parameter{","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{newcustom(f,\"custom","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.parameter{},","[]definition.result{","[]descriptor","[]exampl","[]filter","[]funcfield","[]index","[]int","[]message,","[]middlewar","[]oper","[]paramet","[]producer,","[]result","[]string","[]string)","[]string.","[]string{\"text/plain\"},","[]string{commentsoptiondescriptors,","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[]string{},","[]structfield","[text/plain]","[{\"id\":0,\"title\":\"method","\\","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","`","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`converter`.","`default`","`desc:\"debug","`desc:\"desc","`desc:\"log","`desc:\"nirvana","`desc:\"overrid","`desc:\"tl","`desc`","`desc`).","`json:\"content\"`","`json:\"id\"`","`json:\"message\"","`json:\"name\"","`json:\"title\"`","`key`","`name`","`pointer`","`source:\"header,cont","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source:\"query,start\"`","`source:\"query,start,default=100\"`","`source`","`source`.","`validator`.","a.","ab","abov","above.","above:","accept","accept:","accepttypeal","access","account}/nirvana.git","actions.","activ","actual","ad","add","add(point","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","addhook(hook","addit","addmodifi","addmodifier(modifi","addopt","addoption(prefix","adopt","advanc","aforement","after(ctx","ag","age\"`","agenthostport","aim","alias.","allow","altern","alway","analyz","analyzeranalyz","ananlyzer.","anonym","anoth","anotherautostruct","anyth","anytyp","anytype)","api","api\",","api.getopenapidefinitions,","api.go","api.go:179","api.go:87","api.go:95","api.register(root)","apibuild","apis.","api。","api。api","api,并且允许用户接入其他日志系统。","api,用于取得服务运行时信息。","api,用于生成","api,用于获取一条消息:","appear","append","applic","application'","application.","application/json","application/json\"","application/json'","application/octet","application/x","application/xml","approach","arg","args);","argument","around","array","array\",","array,","associ","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","automat","avoid","b.","back","badgateway","badrequest","base","baseline,","basic","basics.","befor","before(ctx","before.","behavior","behavior,","behavior.","below","best","between","bin","bind","bit","block","bodi","body()","body(contenttyp","body,","body.","body.nam","body.name)","body,但是","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","boilerpl","boilerplate\")","bool","bool(tag","bool)","bool):","bool,","bool.","boost","box","brief","broken","browser","build","build()","build(reason","builder","builder()","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","builder,factori","builder:","buildimag","built","busniess","by:","byte","byte(tag","bytes.","c","c,","c.rest.request(\"get\",","c.set(externalconfigname,","c.svca","c.svca,","c.svcb","c.svcb,","c.v1","c.v1,","caicloud.","call","called.","can't","capabl","care","careful,","carri","case","case,","cases,","categori","category()","categorycustom","categorystruct","categoryvar","cd","cert","certain","certif","cfg","cfg)`","chain","chain)","chain.continue()","chang","char","charact","characters,","characters.","check","checker","checker(check","checkout","child","children","children:","children;","class","clean","cleaner","cleaner.","clearer","cli","cli,","cli.svca().v1().listmessages(context.background(),","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","client.register(root)","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","client。而","client,用于生成","clone","clone(wrapp","cmd","cmd/nirvana","cobra","code","code()","code,","code.","collect","comamnd","combin","combination.","come","comma","command","command(cfg","command,","command.","commands.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","commit","common","complet","complex","complic","concept","concret","conet","config","config(nam","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.json","config.port())","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","configuration,","configuration:","configure(","configure(cfg","configure(configur","configurers.","configurers:","configurer:","config:","conflict","connections.","consist","const","consum","consume(r","consume.","consumeallifconsumesisempti","consumenoneforhttpget","consumers:","consumer,converter,prefab","consumer,即允许请求体为空。","consumer:","consumes.","consumes:","contact:","contacts:","contain","container.","containercontain","container:","content","content\"))","content\",","content\"}","content.","content:","contention(en","contentlength","contentlength()","contenttyp","contenttype()","content}","context","context,","context.","context.context","context.context)","context.context,","context.context。","contexthttpcontext","contextprefab","contextprefab。请参考","contextu","context。http","context。在这种场景下,如果每个","continu","continue(context.context)","continue):","contribut","contriv","conveni","convent","convention,","convert","converter.","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","convertor,","core","core,","correct\")","correct\",","correspond","count","count)","count).","counter","cover","cpu","creat","create:","create)。","creation,","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","customopt","customtracer(trac","d","data","data\"","data\".","data(&messages).","data(message1).","data(valu","data.","data,然后","db","deal","debian:jessi","debug","decid","declar","dedic","def.dataerrorresults(\"a","def.definition.","def.definition{","def.descriptor{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.prefab,","def.query,","default","default()","default,","default:","default={value}","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","defaulttracer(servicenam","defaultvalu","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor","definition.descriptor.","definition.descriptor{","definition.destin","definition.error,","definition.error。","definition.funct","definition.get,","definition.method","definition.middlewar","definition.oper","definition.operatorfunc(operatorkind,","definition.paramet","definition.produc","definition.query,","definition.sourc","definition.typ","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definition/method","definition:","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definitions:","definition。在我们实际开发过程中,经常会要求","definition。请求过滤器则是在","definition此处的","delet","dep","depend","dep:https://github.com/golang/dep","deriv","derived(","desc","descid","describ","descript","description\")}","description\",","description()","description(descript","description:","descriptions.","descriptor","descriptor'","descriptor(descriptor","descriptor,","descriptor.","descriptor:","descriptors.","descriptors.go","descriptor。","descriptor。然后动态生成一个","descriptor:","design","destin","destination()","destination:","destinationhandl","destinationhandler)","destinationhandlerdestinationhandl","destination:meta,data,error。","detail","details,","develop","developmenet","diagnos","didn't","differ","direct","directli","directori","disabl","disable()","disabled.","discouraged.","distinguish","distribut","divid","do(ctx","do(ctx)","do(req","do.","doc","doc.","doc.go","dockefile),还有一个","docker","dockerfil","docs,","docs.","doctoc","document","documentation.","documentations,","don't","done","done,","doublelog(en","down","draft","dri","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","elem","element","email:","embed","empti","empty,","enabl","enabled\"`","enableplugin","enableplugin(plugin","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","entranc","entry.","env","env,","equal","err","error","error()","error(...interface{})","error(format","error(v","error)","error)。其中参数的","error,","error.","error:field","errorf","errorf(string,","errorln","errorln(...interface{})","errorproduc","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"myproject:message:messagenotexist\",","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","errors:","error。","error。其中","error。创建","error,但是第一种方法比第二种多出更多特性:","errros.","etc","etc.","etc;","even","everyth","ex.","exact","exampl","example\",","example\",\"content\":\"exampl","example):","example,","example.","example.ag","example.firstnam","example:","example_ag","example_first_nam","except","exec","execut","execute(context.context)","execute(descriptor","execute.","executed.","executewithconfig","executewithconfig(cfg","executing.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exist","exists,","exit","exp","exp:","expectationfail","experience.","expired.","export","expos","expression.","extend","extens","extern","externalconfignam","extract","f","f(context.context,","f)","f.","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","facts:","fail","faileddepend","fals","false,","false.","fast","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","featur","few","field","field,","field.","fielda.","fieldb.","fields,","fields.","fieldtype)","file","file(key","file(nam","file)","file,","file.","file。","fill","fillleadingslash","filter","filter(filt","filtered.","filters()","filters.","filters.go","filter。","final","finally,","find","findpackag","findpackages(target","finish","first","first.","firstcontextparamet","firstnam","fix","flag","flag,","flags,","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","flags/env/config","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","flag。","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float*,","float32","float32.","float64","float64((time.since(starttime))","float64.","flow","fmt.print;","fmt.printf;","fmt.println;","follow","for(f","forbidden","fork","form","form(key","form(nam","format","format)","format.","format:","formats)","formatt","format,比如","found\")","found\",","found\")。","four","framework","framework!","framework:","frequent","from.","full","fullmatch:.*","fullmatchregexpnod","func","func()","func(c","func(cmd","func(context.context,","func(ctx","func(d","func(resp","func.","funcfield","function","function.","function:","functionalities.","functions.","functions:","funtion","future.","gatewaytimeout","gen","gen.","gener","generate()","generate(ctx","generation,","generator.","generators/golang","generators/swagg","generators/util","generator。这些","generator:","get","get()","get(inst","get(key","get(typin","get/list","get/sav","get____","getbool","getbool(key","getdefinitions:","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","gethttpclient(req),","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getmessag","getmessage(ctx","getopenapidefinit","getopenapidefinitions.","getopenapideinit","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","get。","get,两者没有区别。","git","git@github.com:{your","github","github.com/caicloud/","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/definition/method","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","github.com/caicloud/nirvana/plugins/healthcheck","github.com/caicloud/nirvana/plugins/logg","github.com/caicloud/nirvana/plugins/metr","github.com/caicloud/nirvana/plugins/profil","github.com/caicloud/nirvana/plugins/reqlog","github.com/caicloud/nirvana/plugins/trac","github.com/caicloud/nirvana/servic","github.com/go","github.com/golang/dep/cmd/dep","github.com/spf13/cobra","github.com/spf13/vip","githuh","given","glance,","global","glog","glog.","go","go.","go111module=on","goal","goe","golang","golang/dep","golang:latest","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","gone","good","goon,用来确定是否需要执行下一个","gopkg.in/go","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","gracefulli","grep","guid","h","handl","handle(ctx","handle.","handler","handler(request","handler.","handlers.","handler。","handler。这些","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","handler:","happen","hash","hash(hash","header","header(key","header(nam","header.","headers:","headerwrit","headerwritable()","healthcheck","healthchecker)","help","help`,","helper","here","high","higher","highest","highprior","histogram","hold","hood,","hook","hook()","hook)","hook.","host","host:","host:port","hosts:","http","http.defaultcli","http.handler","http.handler,用来处理请求。","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.responsewrit","http.responsewriter,","http.responsewriter.","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","http://127.0.0.1:8081","http://host:port/metrics.","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","http://localhost:8080/apis/v1/messages/101,即可得到一个","http://localhost:8080/apis/v1/messages:","http://localhost:8080/echo","http://localhost:8080/metr","httpcode","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","httpctx","httpctx.request()","httpctx.responsewriter()","httpmethod","https\"`","https.","https://editor.swagger.io/,","httpversionnotsupport","i)","i.e.","id","id\"),","id\",","id,","id.","id/nam","id:","idea","ident","identifi","id,也就是","ifac","ignor","ignored.","imag","image\",","imageprefix","imagesuffix","immedi","immediately.","impact","implement","implementation,","implementation.","implemented:","import","import(path","improv","in()","includ","include:","incom","increas","index","indic","individu","info","info(...interface{})","info(f|ln)","info,","info.","info:","infof","infof(string,","infoln","infoln(...interface{})","infoln.","infoprops:","inform","information.","inherit","init","init()","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","inject","input","input(","input,","input.","insensit","insid","inspect","inspect(context.context)","inspector","inspector:","instal","install(build","install(flag","install/initi","instanc","instance)","instance.","instead","instead,","insterface{})","instrument","instrumentation.","insufficientstorag","int","int(tag","int)","int*,","int,","int.","int16","int16(tag","int32","int32(tag","int32.","int64","int64(tag","int64.","int8","int8(tag","integr","intercept","interfac","interface,","interface.","interface:","interface{}","interface{})","interface{},","intern","internalservererror","interrupt","introduc","introduct","invalid","io.read","io.readclos","io.readcloser,","io.reader,","io.writer,","ip","ip\"`","ip()","ip(ip","ip.","is,","is:","isset","isset(key","it!","it'","it.","it:","itself).","itself.","json","json.marsh","json.newencoder(os.stdout)","json.unmarsh","keep","key","key,","key.","key/valu","key:","keyfil","keyword.","key,默认为","kickoff","kind","kind()","kind.","knob","know","language:","larger","last","lasterrorresult","latenc","latencies.","layout","length","lengthrequir","let'","level","level,","level.","leveldebug","leveldebug)","levels.","librari","license,","license:","lifecycle.","line","list","listen","listen.","listmessag","listmessages(ctx","load;","localhost:8080","locat","locations.","lock","locked()","locked.","log","log.","log.fatal(err)","log.fatalln(err)","log.info(msgs)","log.infof(\"listen","log.logg","log.logger)","log.v(4).info","logger","logger\"`","logger()","logger(l","logger(logg","logger.","logger。","logger,使用的是","logger,用于输出错误。","logic","logo","logs\"`","logs,","logs.","long:","longer","look","loopdetect","lot","lower","lowprior","main","main()","main.go","maintain","make","make([]message,","make(ctx","makefil","makefile,只需要使用简单的","manag","management,","mani","manner","map","map,","map.","map[string][]definit","map[string][]definition.definit","map[string][]definition.middlewar","map[string][]str","map[string]str","map[string]string,会写入","map[typename]*typ","mappings.","marshal","match","match.","matching.","math.maxint32","mean","mechan","mediumprior","mention","messag","message\"),","message\",","message()","message).","message,","message.","message.getmessage,","message.go","message.listmessages,","message1","messagenotexist","messagenotexist.error(id)","messages\"),","messages\",","messages.","meta","meta(valu","method","method)","method,","method.","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","methodnotallow","methods,","methods.","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","micro","microsecond","middlewaar","middlewar","middlewares()","middlewares.","middlewares.go","middlewares:","middlewares,definitions,children","millisecond","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","missing.","mkdir","mod","mode.","modif","modifi","modifier()","modifier(modifi","modifier.","modifiers.","modifiers.go","modifiers。","modifier。","moditi","modul","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","msgs,","multipart/form","multipl","mustnewcli","mustnewclient(cfg","mustnewclientset","mustnewclientset(cfg","myproject","myproject/cli","myproject:v0.1.0","myself\"}'","n","name","name!\")","name\"),","name\"`","name()","name(nam","name,","name.","name:","names.","namespac","namespace(n","namespace.","namespace:","namespaces.","natur","necessary,","need","need.","neg","nest","net/http/pprof","net/http/pprof.","networkauthenticationrequir","new","new(message)","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newclient","newclient(cfg","newclient(cfg)","newclientset","newclientset(cfg","newclientset(cfg)","newcontain","newcontainer()","newcontainer(root","newcontainer(title,","newcustom","newcustom(f","newinitcommand","newinitcommand()","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","newlin","newmetricsmiddleware(namespac","newserv","newserver(c","newsimpleserializer(contenttype)","next","next.continue(ctx)","nil","nil)","nil,","nil.","nil。如果服务异常,则返回相应的错误。","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.json","nirvana.newdefaultconfig(\"\",","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana.toml","nirvana.yaml","nirvana.yaml。","nirvana:","nirvana_ip).","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","nobodi","nobody@nobody.io","node.","node:","nodes:","non","notaccept","note","notextend","notfound","noth","nothing)","notice:","notimpl","now","number","obey","object","object,","object.","objectof","objectof(pkg,","objv2,","obtain","occur","occurs,","occurs.","offset","ok","ok,","on","on,","on.","onc","once.","one,","one.","opeartor","open","openapi","openapi\",","openapi()","openapi,","openapi.","openapi/spec","opentrac","opentracing.span)","opentracing.tracer)","oper","operate(ctx","operator'","operator,","operator.","operator;","operatorfunc","operatorfunc(kind","operatorkind","operators.","operators/convert","operators/valid","operators:","operators:","operator。","operator,那么","operator:","operator:valid","optim","option","option,","optional.","options.","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","optionsregexp","option,并且实现","order.","order:","origin","os.exit(1)","os.exit(1).","others).","otherwis","out","out()","output","outsid","overrid","override,","overrideglob","p","p90","packag","package,","package.","package:","packagecom","packagecomments(path","packages(par","packages.","page.","panic","panic(err)","panic.","panic。","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parametergener","parametergenerator)","parametergeneratorparametergener","parameters,","parameters.","parameters:","parent","parent'","pars","parsecom","parsecomments(com","parserequestform","part","partial","pass","patch","path","path(\"message\",","path(key","path(nam","path(path","path).observe(elapsed)","path,","path.","path:","pathnod","paths:","path,query,header,form,file,bodi","pattern","paymentrequir","peopl","performant,","philosophi","pkg","pkg/api","pkg/apis/modifi","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","pkgpath","place","playground/validator.v9","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","playground/validator,提供了用于生成","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","po","point","pointer","pointer.","popular?","port","port\"`","port()","port(port","port.","pos.","posit","post","pprof","pprof,","pr","practic","pre","preconditionfail","preconditionrequir","predefin","prefab","prefab。","prefab。启用之后,所有业务函数的第一个参数必须是","prefab,即","prefab,名称为","prefix","prefix\")","prefix\",","prefix,","prefix:","prefix,那么","present","prevent","previou","printer","prior","prioriti","priority()","privat","process","produc","produce(w","produce.","produceallifproducesisempti","producenoneforhttpdelet","producerconsum","producers,并且他们的行为和","producers:","producer。","producer,即允许响应体为空。","producer:","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","project\")","project.register(root)","project:","prometheu","prometheus,提供了一个","propos","provid","proxyauthrequir","put","put()","put(in","put(inst","putinterfac","putinterface(ifac","qualifi","queri","query(\"count\",","query(key","query(nam","query,head","quick","quit","r","random","read","readable.","reader","reader.","readme.md","ready,","reason","reason,","reason.","reason。","reason,方便客户端判断错误类型。","recal","receiv","recommend","recommended.","recovered.","redirecttrailingslash","refer","reflect","reflect.kind","reflect.structtag","reflect.typ","reflect.type)","regexp","regexp.mustcompile(`^[","regexp:","regexp:[a","regexpnod","regexpnode.","regiser.","regist","register([]def.descriptor{{","register(root","registerconfiginstaller(ci","registerdestinationhandl","registerdestinationhandler(handl","registerparametergener","registerparametergenerator(gener","registerprefab()","registri","registries\")","regular","relat","relationship","replac","replacement:","repli","repo","report","req","req.header.get(\"cont","req.url.path","request","request()","request(method","request)","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestedrangenotsatisfi","requestentitytoolarg","requestexecutor","requestheaderfieldstoolarg","requestid(en","requestidkey(key","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests.","requests:","requesttimeout","requesturitoolong","request。config","requir","resourc","resource,","resource.","resp","respons","response.","responsewrit","responsewriter()","responsewriterresponsewrit","responsewriter。可是使用","rest","rest.newclient(cfg)","result","result\",","result.","results,","results.","results:","results。其中","retriev","retrun","return","return.","rewrit","rfc","right.","root","root.addcommand(newinitcommand())","root.execute();","rout","routepath()","router","router.","routingchain","routingchain)","routingchain.continue()","rule,","rules:","run","run(cmd","run.","run:","runtimeimag","same","satisfi","scheme","scheme.","scheme:","schemes:","scope","scratch","second","see","seen","segment.","select","send","sens","sent.","separ","sequenc","serial","serv","serve()","serve=\":8081\"","server","server\",","server,","server.","servic","service!","service.","service.builder,","service.contextprefab。这个","service.httpcontextfrom(ctx)","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","service.servehttp()","service/rout","service;","services.","serviceunavail","set","set(key","set(nam","set.","setdefaultlogger()","sethook","sethook(hook","setlogg","setlogger(logg","setmodifi","setmodifier(m","settings:","sever","severity.","severityerror","severityfat","severityinfo","severitywarn","short","short:","shortflag","show","shown","shut","shutdown","shutdown(ctx","shutdown,","signatur","signature:","signatures)","silentlogg","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","site","situation.","sleep","slice,","small","smoothli","snippet","someapi","somedefinitions,","somefunction()","somemiddlewar","somemiddlewares,","someth","something.","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","sourc","source()","source,name[,default=value]","source.","source:","sourceaddr(en","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","source。其他的","source:path,query,header,form,file,body,auto,prefab。","spam","span","span.","spec.","spec.infoprops{","special","specially.","specif","specifi","specification:","specified,","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starting.","starts.","starttim","static","statu","statuscod","statuscode()","stderr","stdlogger。可以通过","stdout","step","still","store,","store.","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","stream","stream\"","string","string(tag","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","stringnod","stripped.","strongli","struct","struct\",","struct(inst","struct,","struct.","struct:","structfield","structs,","structur","structure\",","struct{}","stuff","sub","submatches.","subsequ","succeess","success","success\",","such","suffix\")","suffix\",","summari","summary:","support","support,","support.","sure","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","swagger","swagger,","swagger.json","switch","symbol","system","tabl","table:","tag","tag()","tag.","tags.","tag。","take","target","target.","tbd","teach","teapot","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","the/rest/path","then,","therefor","therefore,","this:","though","three","time","time,","time.dur","time.duration.","time.millisecond)","time.now()","times,","tire","titl","title:","tl","tls(certfile,","to:","todo:","token.pos)","toolchains\",","toomanyrequest","total.","touch","trace","tracer","tracing,","translat","treat","tri","true,","true,那么除了设置当前","two","type","type\"","type\"),","type\"`","type()","type.","type.fieldbyindex.","type:","typenam","typenameinvalid","types.","types.go","types:","type为了能让","typic","u","uint","uint(tag","uint(value),","uint)","uint*,","uint.","uint16","uint16(tag","uint16)","uint32","uint32(tag","uint32.","uint64","uint64(tag","uint64.","uint8","uint8(tag","uintptr","unambigu","unauthor","unavailableforlegalreason","under","understand","unimport","uninstal","uninstall(build","uniqu","unix","unless","unlik","unmarsh","unprocessableent","unsupportedmediatyp","until","up","updat","upgrad","upgraderequir","upper","url","url:","urlencod","urlencoded\"","us","usability.","usag","usage.","use,","use.","use:","used.","user","user,","usual","usually,","util","v","v(level)","v.","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","v2","valid","valid.","validate(cmd","validate(nam","validate(object.(*object));","validate(target","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation)","validation,","validation.","validation:","validator'","validator.","validator.int(\"min=1\"),","validator.int,","validator.newcustom(","validator.str","validator.uint(\"min=1\"),","validator:","validatorforanobject","validators,用于","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","values.","var","var,","variantalsonegoti","vc","velocity.","vendor","vendor。","verb","verb,","verbos","verboser,","verboser.","veri","verifi","version","version(vers","version.go","version:","versions:","via","via:","view","viper","w.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","way","ways.","we'll","we'v","wealth","well","well.","whether","whole","within","without","won't","works!","works:","world!\",","wrapper","wrapper.","write","writeheader()","writeheader().","writer.","written","wrong","wrong,","wrong.","www","x","xml.marshal","xml.unmarsh","yaml","you'll","you'v","you:","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","{...)","{...}","{executablefilepath}/","{executablefilepath}/config/","{return","|","}","})","}),","},","}...)","↑","↓","│","└──","├──","。","一个创建命令的私有函数","一个基本的插件框架如下:","一个表示当前命令的所有参数的","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","一致的","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","一般情况下,我们使用最新版本的","一般情况下,插件应该通过插件","一般情况下,用户会使用这个全局的容器。","上","上添加一个中间件用于提取","上的中间件,用于打印所有路由匹配成功的请求的日志。","下查看启用的","下面用一个例子来说明这几个节点:","不能满足实际的业务需求,可以通过","与","与业务函数的参数名称无关。","且成功匹配的情况下,中间件的执行按照","业务函数","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","业务函数返回结果如何放到请求的响应中。","业务方法:","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","两个服务项目。","中","中。","中一类特殊的","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中也提供了直接打包成镜像的命令:","中传递","中使用","中创建","中创建实例并通过","中包含","中包含了两个组件功能实现了","中包含了许多实现了","中可以看到","中定义。api","中定义的动作以及对应的","中实现的唯一一个","中打印表格的功能。","中提供了","中携带","中添加","中添加插件配置。","中的公开字段根据一定的规则(规则参考上面的注释)从","中间件","中间件不应该修改","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件接口如下:","中间件添加在","中):","中,context","中,不能在任何子目录下使用","中,业务函数是","中,存在一些","中,我们也经常看到使用数字","中,我们建议所有的","中,所有的","中,提供了","中,每一个","中,目前包括三个命令:","中,都有一组","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","中,错误需要实现","中:","为","为了保证业务与","为了方便使用,nirvana","为了演示这个过程,我们逐步构建这个项目。","为所有","为所有的","为空的","为被替换为","主要是以","之上,构建了","之前。","之前使用。","之前,需要知道以下几件事情:","之后,编译运行。然后访问","之后,通过","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","也在当前包中。如果需要对配置进行扩展,增强","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","也就是说,业务可以完全不依赖框架。","也提供对","于","于是","介绍","从","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","从请求中获取数据。","从请求的那一部分取得数据,然后传递给业务函数。","代码如下:","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","以及插件化功能。","以外,config","以外,还会设置全局的","会从第一个","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","会把对应的","会显得非常冗余。因此","会生成一个完整的","会被由命令","会读取","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","但是一般情况下,我们不应该这样使用","但是为了使","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","使用客户端","使用方法如下:","使用自定义的","使用范例","使用默认的","依赖的结构体都会被提取出来并生成到","保存了一个请求的数据,用","信息。","信息的提取。","修改。","修改一个资源的部分内容","修改器","修改器用于在生成路由之前修改","修改器,请求过滤器,api","值","值。一般情况下可以设置为代码的","健康检查插件","健康检查插件提供一个","先执行。并且执行之后会返回","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","公共部分的构建,而每个","公开给用户使用。于是我们需要给","关闭插件","其中","其他与","其他与具体","具体实例类型","内部,比如一个","准备工作","函数。请参考","函数即可:","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","分别对应","列表的","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","则是将业务函数的返回值转换并写入到响应的","则用于判断一个错误是否是由当前的","则用于构建特定的","则由","则表示请求不应该被继续处理,立刻丢弃。","则负责将业务函数的返回结果写入到响应体中。","则针对单个的业务参数和返回值,可以对值进行验证和修改。","创建","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","创建的项目中,可以在","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","创建,用来表示每一个","删除一个资源","到命令中","到自己的账户下,然后下载源码到本地开发目录中:","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","前缀路径","剩余路径类型节点","剩余路径类型节点:","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","功能,并提供了从","功能:","加上","加上一些附加属性,用来表示返回的错误码等信息。","加上空的","包","包中存在三个概念,分别是","包中对","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中):","包中,可以看到","包中,提供了如下功能:","包之间的依赖关系:","包介绍","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包会从以下文件列表中读取配置文件:","包依赖了","包则是利用了","包利用","包包含","包包含了","包包含多个工具用于","包和","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包实现了框架","包实际上都是利用了","包帮助用户快速构建项目。","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包提供了一个","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包提供了一个简单的","包提供了一系列的方法帮助用户快速生成用于校验参数的","包提供了一组基础的日志","包提供了工具方法用于将转换函数包装成","包提供了相应的工具用于注册用户自己的","包提供的","包提供的数据结构生成","包提供的方法注册自定义的","包提供的方法进行注册:","包是一个全局实例容器,每种类型对应一个实例。","包有一个默认的","包来说就简单很多了,这个包里包含一个","包注册指标。采集端可以通过","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包的","包的依赖,可以自行实现错误包,只要产出的错误符合","包的入口是","包的实现基于","包的插件能力:","包相对","包类似于标准库的","包读取源码并生成","包路径:","包还提供了一个全局的","包还提供了方法用于创建自定义验证器:","包进行","包进行路由构建和匹配。","包里提供了一个","包除了包含对","包,但是提供了方法用于生成格式化的错误和错误判断。","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于分离实例的创建和","包,用于读取项目源码,并生成与","即创建了","即可。","即可得到返回结果:","即可查看文档。","去读取指定路径的源码,然后从中找到标记了","去读取数据并进行类型转换。","参数值来源于","参数值来源于当前","参数名称,作为","参数和返回值定义","参数描述","参数来源","参数的类型转换和数据验证。","参数:","参考了","取得返回值,反序列化成","变更。","另外","只使用","只能生成","只需要将业务函数对应位置的","可以不同。","可以在","可以构建带有","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","可以读取源码,获取结构对象和注释信息。","可以通过","可能不能满足实际使用需求。因此","可被","同等级别的字段","名称","名称为","后通过","启动时会打印出","启用","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件后,可以直接向","启用插件并使用默认配置","命令","命令为例,说明单个命令的基本结构:","命令启动容器,然后进行访问:","命令对应的包在","命令就可以完成编译工作:","和","和一个使用了","和业务函数的参数一一对应,而","和插件系统。这个包放置在根目录中是因为这个包是","和相应的功能。","和端口。","和第三方功能的扩展)。","和返回值的","和配置读取,为","因为只获取一条消息,此处为","因此在","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在","在一个","在一个请求路由匹配成功后,nirvana","在上面的定义中,存在两个额外功能:","在上面的路径节点中,每个节点都可以绑定一个","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在业务的实际场景中,默认提供的","在使用","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在完成了","在完成修改并提交到自己的","在实现一个自定义的","在实际的业务中,http","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在常见的商业","在当前","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在接收到","在整个","在服务启动之后,可以通过浏览器或者命令行访问","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","在每个","在没有","在设计上与现存的一些","在运行过程中使用的","在这个包中,主要包含三个概念:config,cli","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","在需要发布的时候,通常需要打包成镜像的形式,在","在需要生成","在项目的","地址。","基本结构如下:","基础类型的转换器这些转换器一般是用于将请求里的","基础类型,结构体类型和自定义类型。目前验证方法基于","处理框架:","多客户端整合","多客户端整合。","大版本的兼容性。即使用","大部分字段与","如下:","如果","如果以下路径都添加了中间件:","如果希望对","如果接收类型是","如果有多个","如果服务正常,则","如果类型符合","如果能返回一个","如果设置了","如果读取到配置文件,那么除了使用","如果需要新增命令扩展","如果需要给字段设置默认值,则需要使用","字段中,可以在客户端使用","字段无效","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","存在优先级,优先级高的","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","完全匹配。","完成","定义","定义。","定义了","定义了一个返回","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义的无关性,nirvana","定义相关的代码都在这个目录中","定义,再对应业务函数:","定义,可以修改或删除","定义,然后由","定义,用于描述","定义:","实例","实例。","实现了","实现了这个接口后,通过","实现的","实现,帮助用户快速构建名为","实际上是一个","实际上是调用的","实际上要填写的部分就是只与自身业务相关的信息。modifi","客户端。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","容器如下:","对于","对于不需要输出日志的场景,使用","对于中间件而言,处理完当前的任务之后只需要调用","对于没有","对于结构体类型,在需要的字段上添加名为","对于这种错误,都会以","对应","对应一个","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","将","将数据写入到响应。","将框架传递给它的与请求绑定的","将类型转换为字节数据写入到响应体中。","将返回值转换为字节写入响应中。在","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就无效。如果","就能够看到","就足够了。但是为了让错误能够以","尾部是不是存在","工作流程","帮助用户把实例方法转换为","并且会检查最后一个","并使用","并成为","应该返回","开发工具介绍","开发的情况下,需要保持对","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","快速生成","性能分析插件","性能分析插件添加与","成功状态码","我们建议","或","或域名,可以有多个","所有与","所有的","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","执行","执行完成之后,请求也处理完成了。","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","扩展了","指定其他输出目录(目前仅支持生成","接下来以","接下来我们给项目增加一个","接口。swagger","接口。其中","接口。即:","接口。如果实现了,就会以","接口。用户在","接口即可。","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","接口如下(这个接口并没有显式定义在","接口如下:","接口实例类型","接口实现了请求跟踪机制,会在","接口或者是","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","接口,可用于针对单个参数或返回值进行验证和修改:","接口,用于创建具有一类特征的","接口:","接收配置以外,还可以通过一些帮助方法获取配置:","描述","描述。所有的","描述符","描述符。构建完成的","提交代码。","提供了","提供了一个命令用于从项目中生成文档:","提供了一个新的接口:","提供了两种类型的","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","提供了多个方法用于设置生成服务需要的日志,definit","提供的","提供的一些","提供的用于生成","插件","插件实现了这个接口之后,即可通过","插件接口的插件。","插件接口:","插件提供了一个函数接口:","插件机制","支持良好,因此在","数据。","数组包含了这个路径下的所有定义。","整合客户端","文件","文件中,方便客户端使用。","文档","文档。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","文档和客户端。","文档截图如下:","文档生成和客户端生成会依赖这个配置文件进行","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法","方法。","方法。clone","方法。比如某个","方法一","方法二","方法包","方法包。","方法安装插件。","方法就应该是","方法用于在对","方法用于安装","方法用于直接创建出","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","方法获取类型,","方法获得","方法返回,因此这两种类型没有对应的方法。","方法都是语义层面的,为的是提高","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","方法,这个方法是一个抽象方法,用于描述一种行为(比如","无","时候,使用","时,使用","是","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","是一个着重于提高开发效率和业务解耦的","是一个短语,用于描述这个","是一样的。","是业务函数返回值处理器,通过调用","是从","是具体要验证的类型,不能使用接口。","是否由这个错误工厂生成。","是基础包,分别负责日志基础接口和错误处理基础接口。","是对","是由服务端生成而不由客户端提交,error","是真正的参数生成器,通过调用","是返回一个资源列表的,那么","是链式调用的,也就是说上一个","暴露","更新一个资源(幂等)","有","有关的所有数据结构,产出的结构可用于生成文档和客户端。","有关,因此如果多个","有时候默认的验证器不能覆盖复杂的验证需求,因此","服务。","服务。因此","服务使用的协议,只能填写","服务启动提供了命令行支持。","服务用于访问这个文档。打开浏览器,访问","服务配置的特殊性,config","机制,允许在","机制,可以在收到一个请求的时候,立刻进行处理。并根据","机制,用于单独配置每一项信息:","来启用插件,并且将插件","来唯一确定一个错误","来提供","来标志的错误。但是数字","来生成","来生成一个能够处理当前的路由上下文的","来自于服务端本身。","来表达这些配置:","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","构建","标准接口如下:","根命令中,比如:","根据上面的","根据资源唯一","框架。","框架不同,它的核心目标是让业务与框架隔离。","框架中处于最高优先级。filter","框架会为每个请求构建这样的","框架的","框架的设计核心思想是:隔离","框架设计概览","概念","概览","模式后,level","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","正则表达式,用于匹配路径","正确实现","此时","此时在","每个","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","每种","比如设置","没有太大区别:","注册","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","注册需要的","注意,get()","注意:oper","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","注:如果在","注:这个","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","测试以外,还需要使用","添加","添加到","添加成功后,所有前缀匹配","然后创建两个服务项目(仅用于演示):","然后在","然后就可以直接使用命令创建项目(请确保","然后编译运行,访问","版本信息插件","版本信息插件提供一个","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","状态码作为基础的:","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","生成","生成。","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","生成代码","生成代码:","生成代码:","生成匿名函数:","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","生成客户端","生成的客户端代码如下:","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","生成的客户端是版本化的,版本在","生成,客户端代码生成,项目结构生成。","生效之前,对","用于传入参数输出一个真正的错误。","用于传递请求的上下文。context","用于分析源码的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于将请求体中的数据转换为业务函数需要的类型,而","用于描述一个业务函数的参数的来源和默认值。","用于文档和客户端生成","用于暴露服务端指标。","用于构建","用于检查服务是否正常。","用于生成一个匿名函数,生成的函数的签名没有方法的","用于生成业务函数的参数的","用于真正发起请求,并完成","用于表示代码注释的","用于访问","由","由于","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的两个方法:","的主要命令,利用","的使用方法和普通","的入口包。","的兼容性。","的功能,需要按照上述结构进行开发。","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的参数与返回值。","的参数和返回值中,尽量避免使用其他接口。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的各个组件也是依据这个基本法设计的。在","的命令行和其他依赖工具:","的响应,响应体为:","的基础类型,供业务函数使用。//","的填充。","的字段。","的字段。忽略所有没有","的定义。","的定义以外,还提供了一些函数,帮助快速构建","的实例而不是","的客户端:","的对应关系。","的工具","的开发工作后,我们需要将","的形式。","的形式判断一个","的形式向","的形式向客户端返回,我们还需要给","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的情况下,nirvana","的支持。","的数据来源都是来自于请求,而","的文件用于把当前的命令加入到","的方式有两种:","的方法与","的方法:","的最后一个返回值加上","的最小值为","的格式满足:","的注册方法即可注册","的版本号。下表中展示了","的用户提供一个文档,方便用户阅读。nirvana","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的示例:","的第一个参数添加上名为","的结构体类型,会递归遍历以寻找带有","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的请求都会执行这个中间件。","的调用者。这样就完成了对一个项目的","的路径上。","的运行,只用于描述项目的信息以及区分不同版本的","的返回值会作为下一个","的返回值作为","的返回值作为数据返回。","的返回值来确定是直接丢弃该请求还是继续处理。","的返回结果。","的返回结果,构建出相应的客户端和文档。golang","的配置文件在根目录的","的配置,用于创建","的错误)。","的除了","的需要的包定义文件","的顶级包,而且其依赖的所有包只来自","的项目结构如下:","的顺序。","监控指标插件","监控指标插件基于","目前","目前客户端生成对接口的支持还不完善,仅仅对","目前支持三种类型的验证,分别对应","目录下生成","目录下,则还需要运行一下命令开启","目录中就能看到编译后的二进制文件,直接运行:","目录:","直接编译运行","相关接口如下:","相关的所有定义和类型信息。api","相关类型:","真正的实例,即","种类型的","空的","端口提供服务。为了防止端口冲突,可以使用","第一种方法带有","第一种方法支持使用","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型","类型。","类型。业务函数的参数也响应的变成了","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型是否和业务函数的参数类型一致。","类型的","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","类型转换为了","类型):","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","系列包","系列包包含:","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","级别的配置,这些配置是针对当前服务的。而对应的","结构体包含了一个具体的","结构体包含具有如下含义的字段:","结构体,可以组合成一个:","结构,然后再返回给","给项目添加一个","统一网关访问","继承的字段","编写,只是为了通过","编译并打包成","编译运行","编译运行后可以得到结果:","而不是","能转换为可读的数据结构,构建了","自动处理数据转换,nirvana","自定义验证器","自身和标准库(config","范例如下:","范例,因此可以直接运行查看效果。","获取一条消息的","获取接口实例:","获取某个实例的方法,之后再在服务启动逻辑里","获取资源","获取资源列表","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","要求每个插件提供一个","设置","设置为","设置接口实例:","设置服务","设置服务名称","设置服务版本号","设置服务的描述","设置监听的","设置监听的端口。","设置请求","设置路径前缀,默认值为","访问","证书和密钥。","识别的错误,但是如果业务逻辑中如果不希望引入对","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","该命令默认会在","详细描述这个","语言版本(version","语言版本升级到最新版本","说明了请求和响应中的数据类型。为了根据","请求。","请求中使用的都是","请求中,content","请求日志插件","请求日志插件会添加一个在","请求的","请求追踪插件","请求追踪插件基于","读取源码并进行分析,产出","调用,可以生成客户端以供使用:","负责一种类型的参数的验证和类型转换工作。","负责一种类型的返回结果的数据转换工作。","路径","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径匹配完成后,会调用匹配链的最后一个节点的","路径同等级别的字段","路径替换,因此需要正确设置版本规则。","路径默认为","路径,默认值为","路由和处理的所有功能。","转换为路由需要的数据结构,涉及到以下内容:","转换函数必须符合","输出日志如下(项目路径和日志时间会有所不同):","过滤器","过程。也就是可以在声明","返回","返回值可以是任意结构,自动转换并写入到","返回值目标","返回出去,供业务函数使用。//","返回回去。","返回服务当前是否健康。api","返回服务的版本信息。api","返回的是资源数组,所以使用","还会将","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这两种方法都可以创建","这两种类型的请求体,并转换为","这个","这个主要是利用了","这个例子中,验证器要求","这个包并进行命令注册:","这个包方便了用户创建能够被","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个实例方法容器分离了方法的","这个插件暴露三个选项:","这个节点匹配剩余所有路径。","这个过滤器判断","这个过滤器只针对","这个返回值类型必须是","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","这套日志","这就是","这就表示文档生成成功,并且提供了一个","这是一个在","这是一个工具方法,用于快速生成一个参数结构。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","这样做有两个优势:","这样就能够非常方便的错误创建和错误判断了。","这样就能通过","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","这种形式的","这里添加的业务函数都是以","进行了扩展,涉及到字段的改变,也需要在这个包中修改","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行修改。","进行包管理","进行包装的时候,获取正确层级的调用栈信息。","进行开发,但是需要保证两个","进行扩展,需要遵守上面这些规则。","进行描述的。首先看一个","进行注册。然后提供相应的","进行解析。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","选项的注释。两个选项的值对应两个函数,分别返回","通常对应于","通常情况下,我们需要快速添加一些","通常情况下,有","通过","通过具体错误的","那么","那么如果存在请求","部分,例如:","都是通过","都有一个对应的","都通过这个","都遵守","都需要去描述这个参数,那么","配置器机制","配置基本信息以外,还提供了插件机制。","配置文件名:","配置文件,用于描述项目的基本信息和结构。","采集指标数据。","里。","里取值。","里的值进行文本国际化。","里获取的。","针对请求的","链接","错误包","错误类型,必须是","镜像","限制","除了","除了使用","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","除了常规的","除了插件","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。","集合上述所有功能的","需要使用","需要实现接口:","项目","项目。项目结构如下:","项目名[:模块名]:错误名","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","项目,用于保存所有服务的客户端:","风格,并且在","首先会利用","首先创建","首先将","首先看","首部有没有","验证器函数必须符合签名","默认值","默认启用的","默认情况下,nirvana","默认情况下,我们会为每个服务生成如下结构的客户端:","默认情况下,插件会添加四个","默认提供了","默认提供的","默认路径为",",然后在创建项目时添加"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"\n\nTable of Contents generated with DocToc\n\nNirvana\nInstallation\nGetting Started\nAPI quick start\nValidate it!\nIs it popular?\nShow me the doc\n\n\nUser Guide\nAPI Descriptor\nConsumes and Produces\nMiddleware\nAPI Definition\nParameter\nResult\nValidation\nOpenAPI\nConfigurer\nError\nLogging\nPlugins\nMetrics\nProfiling\nTracing\n\n\n\n\nDeveloper Guide and Proposals\nProposals\nPlugin framework\n\n\n\n\n\n\nNirvana\nEnglish version of this docs is expired. We will rewrite it in the future. If you have any idea or you want to contribute to this docs, PLEASE let us know it.\nNirvana is a golang API framework designed for productivity and usability. It aims to be the building block for\nall golang services in Caicloud. The high-level goals and features include:\n\nconsistent API behavior, structure and layout across all golang projects\nimprove engineering productivity with openAPI and client generation, etc\nvalidation can be added by declaring validation method as part of API definition\nout-of-box instrumentation support, e.g. metrics, profiling, tracing, etc\neasy and standard configuration management, as well as standard cli interface\n\nNirvana is also extensible and performant, with the goal to support fast developmenet velocity.\nInstallation\ngo get -u github.com/caicloud/nirvana\n\n# for openapi generation\ngo get -u github.com/caicloud/nirvana/cmd/openapi-gen\nGetting Started\nAPI quick start\nIn Nirvana, APIs are defined via definition.Descriptor. We will not introduce details of the concept Descriptor,\ninstead, let's take a look at a contrived example:\n// API descriptor.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Corresponding to the first result\",\n },\n {\n Destination: definition.Error,\n Description: \"Corresponding to the second result\",\n },\n },\n },\n },\n}\n\nThis is an echo server API descriptor. The descriptor is a bit complex at first glance, but is actually quite\nsimple. Below is a partially translated HTTP language:\nHTTP Path: /echo[?msg=]\nHTTP Method: Get\nHTTP Headers:\n Content-Type: Any Type\n Accept: text/plain or */*\nThe request handler Echo receives two parameters and returns two results, as defined in our descriptor.\nNote the first parameter is always context.Context - it is injected by default config.\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNirvana will parse incoming request and generate function parameters for Echo function as defined via\nDefinition.Parameters - parameters will be converted into the exact type defined in Echo. Once done,\nNirvana collects the results and sends back response.\nWith our API descriptors ready, we can now create a server to serve requests:\npackage main\n\nimport (\n \"context\"\n\n \"github.com/caicloud/nirvana\"\n \"github.com/caicloud/nirvana/definition\"\n \"github.com/caicloud/nirvana/log\"\n)\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(nirvana.Descriptor(echo))\n log.Infof(\"Listening on %s:%d\", config.IP(), config.Port())\n if err := nirvana.NewServer(config).Serve(); err != nil {\n log.Fatal(err)\n }\n}\n\nNow run the server and test it:\ngo run ./examples/getting-started/basics/echo.go\nINFO 0202-16:34:38.663+08 echo.go:65 | Listening on :8080\nINFO 0202-16:34:38.663+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-16:34:38.663+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\ntest\nFor full example code, see basics.\nValidate it!\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :)\n\nFor full example code, see validator. Checkout the source code to see\nhow to add your own validation.\nIs it popular?\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig().\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in milliseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.1\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.2\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.4\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.8\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1.6\"} 28\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3.2\"} 41\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6.4\"} 73\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"12.8\"} 126\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"25.6\"} 260\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"51.2\"} 507\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"102.4\"} 995\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"204.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"409.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"819.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1638.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3276.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6553.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"13107.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"26214.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"52428.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.1\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.2\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.4\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.8\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1.6\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"12.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"25.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"51.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"102.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"204.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"409.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"819.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1638.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3276.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6553.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"13107.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"26214.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"52428.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 55\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 90\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 101\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 3\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\nShow me the doc\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +nirvana:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\nUser Guide\nAPI Descriptor\nAPI Descriptor is the core data structure in Nirvana: it holds all API definitions, and is usually the starting\npoint to write your services with Nirvana. Following is the golang type definition of Descriptor:\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nA single descriptor contains API definitions for a single path. It sets Content-Type to be produced and\nconsumed by the path handler. Each descriptor has an array of children; they will all inherit Content-Type\nfrom the parent descriptor, for example:\ndefinition.Descriptor{\n Path: \"/path\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Definitions: SomeDefinitions,\n Children: []definition.Descriptor{\n {\n Path: \"/child\",\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n },\n },\n}\n\nThe child descriptor is identical to:\ndefinition.Descriptor{\n Path: \"/path/child\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n}\n\nConsumes and Produces\nConsumes and Produces indicate content types that current definitions and child definitions support. Following\nis a table of all supported MIME types and their data types:\n\n\n\nMIME\nConsume\nProduce\nNote\n\n\n\n\nMIMENone\nnil\nnil\nCan be used into Consumes of Get/List and Produces of Delete\n\n\nMIMEText\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEJSON\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEXML\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEOctetStream\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEURLEncoded\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\nMIMEFormData\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\n\nMiddleware\nMiddleware is a convenient mechanism to intercept HTTP requests entering your application. To use middleware\nin Nirvana, just add your middlewaare definition to API descriptor. For example, below is the code snippet for\nmetrics plugin:\nmonitorMiddleware := definition.Descriptor{\n Path: \"/\",\n Middlewares: []definition.Middleware{newMetricsMiddleware(c.namespace)},\n}\n\nfunc newMetricsMiddleware(namespace string) definition.Middleware {\n ...\n\n // This is the middleware function to be called for each request.\n return func(ctx context.Context, next definition.Chain) error {\n startTime := time.Now()\n err := next.Continue(ctx)\n\n httpCtx := service.HTTPContextFrom(ctx)\n req := httpCtx.Request()\n resp := httpCtx.ResponseWriter()\n path := req.URL.Path\n elapsed := float64((time.Since(startTime)) / time.Millisecond)\n\n requestCounter.WithLabelValues(req.Method, path, getHTTPClient(req), req.Header.Get(\"Content-Type\"), strconv.Itoa(resp.StatusCode())).Inc()\n requestLatencies.WithLabelValues(req.Method, path).Observe(elapsed)\n requestLatenciesSummary.WithLabelValues(req.Method, path).Observe(elapsed)\n\n return err\n }\n}\nUsually, Nirvana users do not care about how middlewares are implemented: they only need to find useful\nmiddlewares and add them to their descriptors. But if necessary, writing your own middleware is also quite\nstraightforward, as shown above.\nUnlike Consumes or Produces, middlewares are not scoped within a single descriptor, which means a\nmiddleware for /some/path will impact all paths with prefix /some/path, even though they are in different\ndescriptors. For example:\ndefinition.Descriptor{\n Path: \"/path\",\n Middlewares: SomeMiddlewares,\n}\ndefinition.Descriptor{\n Path: \"/path/child\",\n}\n\nThe two descriptors do not have any relationship but their path have common prefix, i.e. path of the first\ndescriptor is a prefix of the second descriptor. In such case, SomeMiddlewares are also valid for the second\ndescriptor. For more details, check the design doc of router.\nAPI Definition\nAPI definition is another core data structure in Nirvana: it defines all handlers for your services. Following\nis the golang type definition of Definition:\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\nEach descriptor has multiple API definitions, and A single API definition contains handler for a single path\nand method combination. For example, here we define a descriptor to handle endpoint /echo, with two methods\nGet and Create:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: EchoGet,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n {\n Method: definition.Create,\n Function: EchoCreate,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n },\n}\nBelow is a list of all supported methods, as well as its corresponding HTTP method and success status code. By\nconvention, every API method corresponds to a HTTP method and ONE success status code. If an API function\nreturns no error, Nirvana will return the success status code.\n\n\n\nMethod\nHTTP Method\nSuccess Status Code\n\n\n\n\nList\nGET\n200\n\n\nGet\nGET\n200\n\n\nCreate\nPOST\n201\n\n\nUpdate\nPUT\n200\n\n\nPatch\nPATCH\n200\n\n\nDelete\nDELETE\n204\n\n\nAsyncCreate\nPOST\n202\n\n\nAsyncUpdate\nPUT\n202\n\n\nAsyncPatch\nPATCH\n202\n\n\nAsyncDelete\nDELETE\n202\n\n\n\nParameter\nParameter describes corresponding handler parameters of an API definition. Your request handler will receive\nthe exact number of parameters, with the same index as defined in your API definition. Note most of the times,\nyou will start your service using nirvana.NewDefaultConfig(), which adds request context as the first\nparameter. Therefore, parameters defined in descriptor appear in the second parameter of your request handler.\nFor example, in the following example, our endpoint /echo has two query parameters, and our handler Echo\nreceives three parameters: context, msg1 and msg2.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg1\",\n Description: \"First message to echo\",\n },\n {\n Source: definition.Query,\n Name: \"msg2\",\n Description: \"Second message to echo\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Result to return if success\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg1 string, msg2 string) (string, error) {\n return msg, nil\n}\nBelow is the golang type definition of Parameter:\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\nSource is the source of a parameter, and Name is the key of Source.\n\n\n\nSource\nDescription\n\n\n\n\nPath\nValue from URL path\n\n\nQuery\nValue from URL query string\n\n\nHeader\nValue from HTTP request header\n\n\nForm\nValue from HTTP body. Content-Type must be \"application/x-www-form-urlencoded\" or \"multipart/form-data\"\n\n\nFile\nValue from HTTP body. Content-Type must be \"multipart/form-data\"\n\n\nBody\nValue from HTTP body. Parameters of this type don't need a name\n\n\nAuto\nData receiver must be a struct. Parameters of the type don't need a name.\n\n\nPrefab\nValue from internal method. See Advanced Usage\n\n\n\nThe source Auto is for combining fields in a struct:\n// Here is an example for `Auto` struct.\n// The struct has some fields. Every field has a tag with name `source`.\n// The source should obey the format:\n// Source,Name[,default=value]\n// `Source` and `Name` are the same as before.\n// `default` is optional. its value should be basic data type (bool, int*, uint*, float*, string).\ntype Example struct {\n ID int `source:\"Path,id\"`\n Start int `source:\"Query,id,default=100\"`\n Tenant string `source:\"Header,X-Tenant,default=test\"`\n}\n\nIf you have lots of fields from a request, you can use Auto with a struct to get values from request.\nDon't use it when you only have a few parameters: separated parameters is more readable.\nAll values from HTTP request are string. Nirvana has a mechanism to convert strings to specific types for\nAPI function. The behavior is customizable via operator, which allows you to modify input request. In case\nthere is custom operator, input request will be converted to parameter type of the first operator. Here is\nthe data flow for a parameter:\n\n\nIf Data is empty and Parameter.Default is not nil, default value is used as Typed Data .\nResult\nResult is similar but simpler than Parameter. Its Destination indicates the target to write data. Just\nlike Parameter, we can modify output response via operator; the final returned type will be the return\ntype of the last operator.\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n\n\n\nDestination\nDescription\n\n\n\n\nMeta\nIndicates the value should be written to HTTP response header. Its type must be map[string]string\n\n\nData\nIndicates the value should be written to HTTP response body. The format is decided by HTTP Accept and Definition.Produces\n\n\nError\nIf an error occurs, Meta and Data is ignored. Error message will be written to HTTP response body\n\n\n\nValidation\nValidation is used to validate request input, including request body, query parameter, etc. In Nirvana,\nvalidation is implemented as a parameter operator, so it naturally has access to all request attributes.\nThere are three categories of validation: Var, Struct and Custom, where Var is used to validate basic\nbuilt-in types like string, int, bool, etc; Struct is for struct validation and Custom is for writing\ncustom validation.\nFor Var validation, simply add the validation operator including the type to validate. For example, the\nfollowing example shows a validation used to validate input string length is longer than 10 characters.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNote we are using Validator.String here since our API handler takes string as input. As an other example,\nif we want to validate input parameter is a number larger than 10, we should use:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Int(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg int) (string, error) {\n return strconv.Itoa(msg), nil\n}\n\nHere we've changed validator to validator.Int, and API handler has input parameter int.\nFor Struct validation, the first step is to add a validate tag to our struct, e.g.\n// Message defines the message to echo and to whom the message will be sent.\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nThen, similar to Var validation, we need to add an operator to our API descriptor. A struct instance is\nrequired for Nirvana to make sure the type to validate actually matches handler parameter type.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Create,\n Function: EchoV2,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Body,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Struct(&api.Message{})},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc EchoV2(ctx context.Context, msg *api.Message) (string, error) {\n return msg.Message, nil\n}\n\nFor Custom validation, you'll write your own operator and use it in API descriptor. The operators/validator\npackage contains helper funtions to create custom validator. For example, the following example uses custom\nvalidation to validate the input request body. Nirvana will convert input request to validator's parameter\ntype.\nOperators: []definition.Operator{\n validator.NewCustom(\n func(ctx context.Context, body *Body) error {\n if body.Name == \"\" {\n return errors.BadRequest.Error(\"you should have a name!\")\n }\n if body.Name != \"nirvana\" {\n return errors.BadRequest.Error(\"name ${name} must be nirvana!\", body.Name)\n }\n return nil\n },\n \"validate your name\"),\n},\n\nOpenAPI\nNirvana can generate OpenAPI 2.0 document from code simply.\nIn the example, swagger will be generated by builder of OpenAPI spec. \nThere are two parts of the code, one is meta info and the other is the generated function GetOpenAPIDefinitions\n// swagger is the struct which can be encoded into whole OpenAPI document\nswagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\n\nGetOpenAPIDeinitions is generated from Go types you defined. \nAdd tag +nirvana:openapi=true to the doc.go file in package of api types just like the follow code\n// +nirvana:openapi=true\npackage api\nAnd run cmd to generate the function GetOpenAPIDefinitions.\nIf input(-i) packages are more than one, comma-separated list can be used.\nopenapi-gen \\\n -i /go/package/to/your/types \\\n -p /go/package/to/your/generated/function\nYou can output the documents in json format by json encoder(or yaml format by yaml encoder)\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\nYou can also serve the documents in an OpenAPI endpoint, e.g. /v2/openapi.\nNOTICE: Don't add openapi descriptor into the descriptor passed to the builder.\nvar openapi = definition.Descriptor{\n Path: \"/v2/openapi\",\n Description: \"OpenAPI endpoints\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: OpenAPI,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"OpenAPI documents struct\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\nfunc OpenAPI() (*spec.Swagger, error) {\n swagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n ...\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n }\n return swagger, err\n}\nConfigurer\nNirvana has a mechanism to set partial options into config. Here is an example mentioned above:\nconfig.Configure(nirvana.Descriptor(echo))\n\nIn the example, nirvana.Descriptor returns a configurer and the configurer will install descriptors into nirvana config.\nThere are some inside configurers in the table:\n\n\n\nConfigurer\nDescription\n\n\n\n\nIP\nSet listening ip. Defaults to \"0.0.0.0\"\n\n\nPort\nSet listening port. Defaults to 8080\n\n\nLogger\nSet custom logger\n\n\nDescriptor\nAdd API descriptors\n\n\nFilter\nAdd request filters\n\n\nModifier\nAdd definition modifiers\n\n\n\nPlugins should also use configurers to configure plugins. For more details, see also Plugins\nError\nIn Nirvana core, error always means HTTP status code 500 - we try to avoid adding busniess logic into Nirvana.\nThat is, for error code other than 500, you are responsible to write your own error implementation, which only\nneeds to satisfy the following interface:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nAn error contains status code and error message. Package github.com/caicloud/nirvana/errors provides standard\nerrors implementation and many helper functions. For example:\n// Example 1:\n// Directly create an error.\n// Fields (e.g. ${customer}) in format correspond to args (e.g. customer.Name) in order.\nerrors.NotFound.Error(\"${customer} not found\", customer.Name)\n\n// Example 2:\n// Create an error factory at first.\nvar CustomerNotFount = errors.NotFound.Build(\"Project:Customer:CustomerNotFount\", \"${customer} not found\")\n// Then create error by factory.\nCustomerNotFount.Error(customer.Name)\n// You can check if an error is derived by specified factory.\nif CustomerNotFount.Derived(err) {\n // Do something.\n}\n\nUse interface errors.Error in function signature is strongly discouraged. You should always use standard\nerror interface and create errors by the methods referred above.\nLogging\nNirvana provides a default logging implementation, the API mirrors glog.\nFollowing logging methods are provided with increasing severity.\nInfo\nWarning\nError\nFatal\nKeep in mind that:\n\nEach level comes with formatter and newliner method, i.e. Infof and Infoln\nInfo has verbosity level, for example, you can use log.V(4).Info for unimportant logs\nFatal error will terminate program execution\n\nFor more details, see github.com/caicloud/nirvana/log package.\nPlugins\nMetrics\nThis plugin provides a lot of metrics with standard prometheus format. You can simply\nenable it via:\nconfig.Configure(metrics.Default())\n\nThe plugin will register a middleware and a descriptor into your nirvana server, installing metrics at endpoint\nhttp://host:port/metrics.\nThere are two config knobs in the plugin:\n\nNamespace: Metrics namespace is the prefix of all metric names. Defaults to nirvana.\nPath: Path is the descriptor path. Users can get metrics by the path. Defaults to /metrics\n\nYou can use following two configurers to change the settings:\n\nmetrics.Namespace(ns string): The function can modify metrics namespace.\nmetrics.Path(path string): The function can modity metrics descriptor path.\n\nFor more information about installed metrics, please check Prometheus Doc.\nProfiling\nThis plugin provides capability to install pprof into nirvana server, which is a direct reflection of golang\nstandard library net/http/pprof.\nYou can install the plugin via:\nconfig.Configure(profiling.Path(\"myprof\"))\n\nThen the plugin handles requests for the following paths:\n\n\"/myprof\": Show profiling index page.\n\"/myprof/profile\": Show cpu profile page.\n\"/myprof/symbol\": Show symbol page.\n\"/myprof/trace\": Show trace page.\n\nThe plugin has two configurers:\n\nPath(path string): The function can change profiling descriptor path. Defaults to /debug/pprof\nContention(enable bool): Use to enable contention profiling. Defauts to false.\n\nFor more information about pprof, please check PProf Doc.\nTracing\nTBD\nDeveloper Guide and Proposals\nProposals\n\nkickoff\nframework\n\nPlugin framework\nFollowing is a framework for writing nirvana plugin. All aforementioned built-in plugins are written with the\nframework: they are the best reference implementations if you ever want to draft a new plugin.\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\nThen user can use the plugin by:\nimport \"/path/to/plugin\"\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(plugin.ConfigA(fieldValue))\n}\n\n"},"guides/project.html":{"url":"guides/project.html","title":"项目结构和初始化","keywords":"","body":"项目结构和初始化\n创建项目\nNirvana 创建项目非常简单,不过在创建项目之前,首先需要下载安装 Nirvana 的命令行和其他依赖工具:\n$ go get -u github.com/caicloud/nirvana/cmd/nirvana\n$ go get -u github.com/golang/dep/cmd/dep\n然后就可以直接使用命令创建项目(请确保 $GOPATH/bin 在 $PATH 中):\n$ cd $GOPATH/src/\n$ nirvana init ./myproject\n$ cd ./myproject\n此时在 $GOPATH/src/myproject 会生成一个完整的 Nirvana 项目。项目结构如下:\n .\n├── bin # 存放编译后的二进制文件\n├── build # 存放项目的 Dockerfile 以及与构建相关的文件\n│ └── myproject # \n│ └── Dockerfile #\n├── cmd # 存放项目的启动命令\n│ └── myproject #\n│ └── main.go # \n├── Gopkg.toml #\n├── Makefile #\n├── nirvana.yaml #\n├── pkg # 所有的业务逻辑都应该在这个目录中\n│ ├── apis # 所有与 Nirvana API 定义相关的代码都在这个目录中\n│ │ ├── api.go #\n│ │ ├── filters # 存放 HTTP Request 过滤器\n│ │ │ └── filters.go #\n│ │ ├── middlewares # 存放 Nirvana 中间件\n│ │ │ └── middlewares.go #\n│ │ ├── modifiers # 存放 Nirvana Definition 修改器\n│ │ │ └── modifiers.go #\n│ │ └── v1 # 存放项目 v1 版本所有的 API 定义\n│ │ ├── converters # 存放 v1 版本需要用到的类型转换器\n│ │ ├── descriptors # 存放 v1 版本的 API 描述符\n│ │ │ ├── descriptors.go #\n│ │ │ └── message.go # 对应 message 业务逻辑的 API 定义,可以修改或删除\n│ │ └── middlewares # 存放 v1 版本需要用到的中间件\n│ │ └── middlewares.go #\n│ ├── message # 业务逻辑目录,这个目录是生成的样板,可以修改或删除\n│ │ └── message.go #\n│ └── version # 项目版本信息目录\n│ └── version.go #\n├── README.md #\n└── vendor #\n这个项目中包含了编译和构建容器的基本工具(Makefile 和 Dockefile),还有一个 golang/dep 的需要的包定义文件 Gopkg.toml。通过如下命令即可完成依赖包的安装:\n$ dep ensure -v\n到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个 API 范例,因此可以直接运行查看效果。\n使用 go module 进行包管理\nNirvana 也提供对 go module 的支持。\n首先将 Go 语言版本升级到最新版本 ,然后在创建项目时添加 --package-manager 参数:\n$ nirvana init --package-manager mod ./myproject\n在当前 GO 语言版本(Version 1.11)中,若项目处于 $GOPATH/src 目录下,则还需要运行一下命令开启 module 功能:\n$ export GO111MODULE=on\n编译运行\n直接编译运行\nNirvana 创建项目时自动生成了 Makefile,只需要使用简单的 make 命令就可以完成编译工作:\n$ make\n在项目的 bin 目录中就能看到编译后的二进制文件,直接运行:\n$ ./bin/myproject\n启动时会打印出 Nirvana 的 Logo 以及当前项目的版本信息以及监听的端口,默认端口是 8080。\n在服务启动之后,可以通过浏览器或者命令行访问 http://localhost:8080/apis/v1/messages:\n$ curl http://localhost:8080/apis/v1/messages\n就能够看到 API 的返回结果。\n编译并打包成 Docker 镜像\n在需要发布的时候,通常需要打包成镜像的形式,在 Makefile 中也提供了直接打包成镜像的命令:\n$ make container\n就会自动开始在容器内编译和打包镜像。不过这个过程中需要 golang:latest 和 debian:jessie 这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改 ./build/myproject/Dockerfile 。\n打包完成后,可以通过 Docker 命令启动容器,然后进行访问:\n$ docker run -p 8080:8080 myproject:v0.1.0\nNirvana 项目配置\n每个 Nirvana 项目都有一个 nirvana.yaml 配置文件,用于描述项目的基本信息和结构。\n# 项目名称\nproject: myproject\n# 项目描述\ndescription: This project uses nirvana as API framework\n# 服务使用的协议,只能填写 http 和 https\nschemes:\n- http\n# 访问 IP 或域名,可以有多个\nhosts:\n- localhost:8080\n# 项目负责人\ncontacts:\n- name: nobody\n email: nobody@nobody.io\n description: Maintain this project\n# 项目 API 版本信息,用于区分不同版本的 API\n# 用于文档和客户端生成\nversions:\n # 版本名称\n- name: v1\n # 版本描述\n description: The v1 version is the first version of this project\n # 版本规则\n rules:\n # 路径前缀,匹配前缀为 \"/apis/v1\" 的 API\n - prefix: /apis/v1\n # 正则表达式,用于匹配路径\n # 如果设置了 prefix,那么 regexp 字段无效\n regexp: \"\"\n # 这个字段仅用于在生成文档和客户端的时候,替换匹配的 API 路径。为空时不会进行替换。\n # 比如设置 replacement = \"/apis/myproject/v1\"\n # 那么 \"/apis/v1/someapi\" 为被替换为 \"/apis/myproject/v1/someapi\"\n replacement: \"\"\n\n这个配置文件不会影响 Server 的运行,只用于描述项目的信息以及区分不同版本的 API。API 文档生成和客户端生成会依赖这个配置文件进行 API 版本识别和 API 路径替换,因此需要正确设置版本规则。\n"},"guides/api.html":{"url":"guides/api.html","title":"API","keywords":"","body":"API\n概念\nNirvana Definition\n在 Nirvana 中,所有的 API 都是通过 Descriptor 和 Definition 进行描述的。首先看一个 List Messages 的 API 定义:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/apis/v1/descriptors/message.go\n\nfunc init() {\n register([]def.Descriptor{{\n // Path 定义了 API 路径\n Path: \"/messages\",\n // Definitions 数组包含了这个路径下的所有定义。\n Definitions: []def.Definition{listMessages},\n },\n }...)\n}\n\n// listMessages 定义了一个返回 Message 列表的 API\nvar listMessages = def.Definition{\n // 这个 API 返回的是资源数组,所以使用 List 方法。\n Method: def.List,\n // Summary 是一个短语,用于描述这个 API 的用途。这个短语在生成文档和客户端的时候用于区分 API。\n // 这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。\n Summary: \"List Messages\",\n // 详细描述这个 API 的用途。\n Description: \"Query a specified number of messages and returns an array\",\n // 业务函数\n Function: message.ListMessages,\n // 对应业务函数的参数信息。用于告知 Nirvana 从请求的那一部分取得数据,然后传递给业务函数。\n Parameters: []def.Parameter{\n {\n // 参数来源\n Source: def.Query,\n // 参数名称,作为 key 从 Source 里取值。\n // 与业务函数的参数名称无关。\n Name: \"count\",\n // 默认值\n Default: 10,\n // 参数描述 \n Description: \"Number of messages\",\n },\n },\n // 对应业务函数的返回结果。用于告知 Nirvana 业务函数返回结果如何放到请求的响应中。\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n根据上面的 API 定义,再对应业务函数:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/message/message.go\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。\nDefinition Method\n在 Nirvana 中,我们建议所有的 API 都遵守 RESTful 风格,并且在 URL 中携带 API 的版本号。下表中展示了 Nirvana 中定义的动作以及对应的 API 定义。\n\n\n\nNirvana 方法\nHTTP 方法\nHTTP 成功状态码\nURL\n描述\n\n\n\n\nList\nGET\n200\n/apis/v1/resources\n获取资源列表\n\n\nGet\nGET\n200\n/apis/v1/resources/{resource}\n根据资源唯一 ID/Name 获取资源\n\n\nCreate\nPOST\n201\n/apis/v1/resources\n创建一个资源(非幂等)\n\n\nUpdate\nPUT\n200\n/apis/v1/resources/{resource}\n更新一个资源(幂等)\n\n\nPatch\nPATCH\n200\n/apis/v1/resources/{resource}\n修改一个资源的部分内容\n\n\nDelete\nDELETE\n204\n/apis/v1/resources/{resource}\n删除一个资源\n\n\nAsyncCreate\nPOST\n202\n/apis/v1/resources\n异步创建资源\n\n\nAsyncUpdate\nPUT\n202\n/apis/v1/resources/{resource}\n异步更新资源\n\n\nAsyncPatch\nPATCH\n202\n/apis/v1/resources/{resource}\n异步修改资源部分内容\n\n\nAsyncDelete\nDELETE\n202\n/apis/v1/resources/{resource}\n异步删除资源\n\n\n\n对于 Nirvana 异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。\n所有的 Nirvana 方法都是语义层面的,为的是提高 API 定义的可读性。也就是说 List 和 Get 在一个 HTTP 请求中使用的都是 GET,两者没有区别。\n但是为了使 API 定义更加明确,我们应该根据场景确定使用哪个 Nirvana 方法。比如某个 API 是返回一个资源列表的,那么 Nirvana 方法就应该是 List 而不是 Get。\nDefinition Source\nDefinition Source 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n参数来源\n名称\n描述\n\n\n\n\nPath\n有\n参数值来源于 API Path\n\n\nQuery\n有\n参数值来源于 URL Query\n\n\nHeader\n有\n参数值来源于 Request Header\n\n\nForm\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 application/x-www-form-urlencoded 或 multipart/form-data\n\n\nFile\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 multipart/form-data\n\n\nBody\n无\n参数值来源于 Request Body\n\n\nAuto\n无\nAuto 类型对应的参数必须是一个结构体,通过结构体的 tag 定义来确定每个字段的来源\n\n\nPrefab\n有\n参数值来源于当前 server 内部,比如一个 DB 链接\n\n\n\nAuto 类型的 tag 范例如下:\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n}\n\ntag 名称为 source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是 Body 类型名称可以为空。\n如果需要给字段设置默认值,则需要使用 default={value} 的形式。 \n如果有多个 Auto 结构体,可以组合成一个:\ntype AnotherAutoStruct struct {\n ...\n}\n\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n AnotherAutoStruct\n}\n\n对于没有 source 的结构体类型,会递归遍历以寻找带有 source 的字段。忽略所有没有 source 的字段。\nDefinition Destination\nDefinition Destination 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n返回值目标\n描述\n\n\n\n\nMeta\n这个返回值类型必须是 map[string]string,会写入 Response Header\n\n\nData\n返回值可以是任意结构,自动转换并写入到 Response Body\n\n\nError\n错误类型,必须是 error\n\n\n\n给项目添加一个 API\n接下来我们给项目增加一个 API,用于获取一条消息:\nfunc init() {\n register([]def.Descriptor{{\n Path: \"/messages\",\n Definitions: []def.Definition{listMessages},\n }, {\n // 获取一条消息的 Descriptor。\n Path: \"/messages/{message}\",\n Definitions: []def.Definition{getMessage},\n },\n }...)\n}\n\n// 获取一条消息的 API 定义。\nvar getMessage = def.Definition{\n // 因为只获取一条消息,此处为 Get。\n Method: def.Get,\n Summary: \"Get Message\",\n Description: \"Get a message by id\",\n // 业务函数\n Function: message.GetMessage,\n Parameters: []def.Parameter{\n // 这是一个工具方法,用于快速生成一个参数结构。\n // message 是从 API Path 里获取的。\n def.PathParameterFor(\"message\", \"Message id\"),\n },\n Results: def.DataErrorResults(\"A message\"),\n}\n\n对应的业务函数如下:\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n添加 API 之后,编译运行。然后访问 http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是 json 类型):\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n这里添加的业务函数都是以 Golang 函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考 方法包。\n"},"guides/doc.html":{"url":"guides/doc.html","title":"生成 API 文档","keywords":"","body":"生成 API 文档\n在完成了 API 的开发工作后,我们需要将 API 公开给用户使用。于是我们需要给 API 的用户提供一个文档,方便用户阅读。Nirvana 提供了一个命令用于从项目中生成文档:\n$ nirvana api --serve=\":8081\"\n默认情况下,nirvana api 会读取 pkg/apis 并使用 8080 端口提供服务。为了防止端口冲突,可以使用 --serve 设置监听的 IP 和端口。\n该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):\nINFO 0702-15:47:52.010+08 api.go:87 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:47:53.499+08 api.go:95 | Project root directory is /home/go/src/myproject\nINFO 0702-15:47:53.500+08 api.go:179 | Listening on 127.0.0.1:8081. Please open your browser to view api docs\n这就表示文档生成成功,并且提供了一个 HTTP 服务用于访问这个文档。打开浏览器,访问 http://127.0.0.1:8081 即可查看文档。\n文档截图如下:\n\n"},"guides/client.html":{"url":"guides/client.html","title":"生成客户端","keywords":"","body":"生成客户端\n生成代码\nAPI 文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行 API 调用,可以生成客户端以供使用:\n$ nirvana client\n该命令默认会在 ./client 目录下生成 golang 客户端代码,可以通过 --output 指定其他输出目录(目前仅支持生成 golang 客户端,其他语言客户端尚不支持)。\n输出日志如下(项目路径和日志时间会有所不同):\nINFO 0702-15:50:54.156+08 client.go:73 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:50:55.609+08 client.go:81 | Project root directory is /home/go/src/myproject\nINFO 0702-15:50:55.610+08 client.go:106 | Generated golang client package myproject/client\n生成的客户端代码如下:\nclient\n├── client.go\n└── v1\n ├── client.go\n └── types.go\n./client.go 生成代码:\npackage client\n\nimport (\n v1 \"myproject/client/v1\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a versioned client.\ntype Interface interface {\n // V1 returns v1 client.\n V1() v1.Interface\n}\n\n// Client contains versioned clients.\ntype Client struct {\n v1 *v1.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (Interface, error) {\n c := &Client{}\n var err error\n\n c.v1, err = v1.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) Interface {\n return &Client{\n v1: v1.MustNewClient(cfg),\n }\n}\n\n// V1 returns a versioned client.\nfunc (c *Client) V1() v1.Interface {\n return c.v1\n}\n\n./v1/client.go 生成代码\npackage v1\n\nimport (\n \"context\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes v1 client.\ntype Interface interface {\n // GetMessage return a message by id.\n GetMessage(ctx context.Context, message int) (message1 *Message, err error)\n // ListMessages returns all messages.\n ListMessages(ctx context.Context, count int) (messages []Message, err error)\n}\n\n// Client for version v1.\ntype Client struct {\n rest *rest.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (*Client, error) {\n client, err := rest.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n return &Client{client}, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) *Client {\n client, err := NewClient(cfg)\n if err != nil {\n panic(err)\n }\n return client\n}\n\n// GetMessage return a message by id.\nfunc (c *Client) GetMessage(ctx context.Context, message int) (message1 *Message, err error) {\n message1 = new(Message)\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages/{message}\").\n Path(\"message\", message).\n Data(message1).\n Do(ctx)\n return\n}\n\n// ListMessages returns all messages.\nfunc (c *Client) ListMessages(ctx context.Context, count int) (messages []Message, err error) {\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages\").\n Query(\"count\", count).\n Data(&messages).\n Do(ctx)\n return\n}\n\n./v1/types.go 生成代码:\npackage v1\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n生成的客户端是版本化的,版本在 nirvana.yaml 中定义。API 依赖的结构体都会被提取出来并生成到 types.go 文件中,方便客户端使用。\n每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考 多客户端整合。\n使用客户端\n客户端的使用非常简单,只需要创建客户端,然后调用相应的 API 函数即可:\nfunc main() {\n cli := client.MustNewClient(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n限制\n目前客户端生成对接口的支持还不完善,仅仅对 io.Reader 和 io.ReadCloser 支持良好,因此在 API 的参数和返回值中,尽量避免使用其他接口。\n"},"concepts/cp.html":{"url":"concepts/cp.html","title":"Consumer && Producer","keywords":"","body":"Consumer and Producer\n包路径: github.com/caicloud/nirvana/service\n在 HTTP 请求中,Content-Type 说明了请求和响应中的数据类型。为了根据 Content-Type 自动处理数据转换,Nirvana 提供了 Consumer 和 Producer 接口。其中 Consumer 用于将请求体中的数据转换为业务函数需要的类型,而 Producer 则负责将业务函数的返回结果写入到响应体中。 \nNirvana 默认提供的 Consumers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 GET 之类的请求,因此不能转换为任何数据类型。\n\n\ntext/plain\n只能生成 string 和 []byte 类型\n\n\napplication/json\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 json.Unmarshal 进行解析。\n\n\napplication/xml\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 xml.Unmarshal 进行解析。\n\n\napplication/octet-stream\n只能生成 string 和 []byte 类型\n\n\napplication/x-www-form-urlencoded\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 类型,因此一般不转换为具体类型。\n\n\nmultipart/form-data\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 或 File 类型,因此一般不转换为具体类型。\n\n\n\nNirvana 默认提供的 Producers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 204 之类的响应,没有响应体,不需要写入。\n\n\ntext/plain\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\napplication/json\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 json.Marshal 将数据写入到响应。\n\n\napplication/xml\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 xml.Marshal 将数据写入到响应。\n\n\napplication/octet-stream\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\n\n添加 Consumer 和 Producer\n在业务的实际场景中,默认提供的 Consumers 和 Producers 可能不能满足实际使用需求。因此 Nirvana 的 service 包提供了相应的工具用于注册用户自己的 Consumer 和 Producer。\n注册 Consumer\nConsumer 需要实现接口:\n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Consumer:\nif err := service.RegisterConsumer(consumer); err != nil {\n log.Fatal(err)\n}\n\n在接收到 Content-Type 与 consumer 一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个 Consumer 去读取数据并进行类型转换。\n注册 Producer\nProducer 需要实现接口:\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Producer:\nif err := service.RegisterProducer(producer); err != nil {\n log.Fatal(err)\n}\n\n在需要生成 Conetent-Type 于 producer 一致的响应,并且业务函数需要返回数据的时候,就会调用这个 producer 将类型转换为字节数据写入到响应体中。\n快速生成 Consumer 和 Producer 的工具\n通常情况下,我们需要快速添加一些 Consumers 和 Producers,并且他们的行为和 application/octet-stream 一致的时候,那么可以直接使用工具方法:\nserializer := NewSimpleSerializer(contentType)\n\nif err := service.RegisterConsumer(serializer); err != nil {\n log.Fatal(err)\n}\n\nif err := service.RegisterProducer(serializer); err != nil {\n log.Fatal(err)\n}\n\n"},"concepts/operator.html":{"url":"concepts/operator.html","title":"Operator","keywords":"","body":"Operator\n包路径: github.com/caicloud/nirvana/definition\n在每个 API Definition 中,都有一组 Parameters 和 Results。其中 Parameters 和业务函数的参数一一对应,而 Results 则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,Nirvana 提供了 Operator 接口,可用于针对单个参数或返回值进行验证和修改:\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n在没有 Operator 的情况下,Nirvana 从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了 Operator,那么 Nirvana 会从第一个 Operator 的 In() 方法获取类型,\n并且会检查最后一个 Operator 的 Out() 类型是否和业务函数的参数类型一致。\n在实际的使用过程中,并不需要实现这个复杂的接口。Nirvana 提供了两种类型的 Operator:Validator 和 Converter。\nValidator\n包路径: github.com/caicloud/nirvana/operators/validator\nvalidator 包的实现基于 go-playground/validator,提供了用于生成 Operator 的方法:\nfunc Struct(instance interface{}) Validator\nfunc String(tag string) Validator\nfunc Int(tag string) Validator\nfunc Int64(tag string) Validator\nfunc Int32(tag string) Validator\nfunc Int16(tag string) Validator\nfunc Int8(tag string) Validator\nfunc Byte(tag string) Validator\nfunc Uint(tag string) Validator\nfunc Uint64(tag string) Validator\nfunc Uint32(tag string) Validator\nfunc Uint16(tag string) Validator\nfunc Uint8(tag string) Validator\nfunc Bool(tag string) Validator\n\n对于结构体类型,在需要的字段上添加名为 validate 的 tag。\n自定义验证器\n有时候默认的验证器不能覆盖复杂的验证需求,因此 validator 包还提供了方法用于创建自定义验证器:\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n验证器函数必须符合签名 func(ctx context.Context, object AnyType) error。其中 AnyType 是具体要验证的类型,不能使用接口。\nConverter\n包路径: github.com/caicloud/nirvana/operators/converter\n除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此 converter 包提供了工具方法用于将转换函数包装成 Operator:\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter\n\n转换函数必须符合 func f(context.Context, string, AnyType) (AnyType, error)。其中参数的 AnyType 和返回值的 AnyType 可以不同。\n在 Definition 中使用 Operator\n这是一个在 List Messages 的 API 中添加 Operator 的示例:\n// Definition\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: message.ListMessages,\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Operators: []def.Operator{\n validator.Int(\"min=1\"),\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n },\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n// 业务函数\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count uint) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n这个例子中,验证器要求 count 的最小值为 1,并且把 int 类型转换为了 uint 类型。业务函数的参数也响应的变成了 uint 类型。\n注意:Operator 是链式调用的,也就是说上一个 Operator 的返回值会作为下一个 Operator 的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:\nOperators: []def.Operator{\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n validator.Uint(\"min=1\"),\n},\n\n但是一般情况下,始终建议验证器放在前面,转换器放在后面。\n"},"concepts/filter.html":{"url":"concepts/filter.html","title":"Filter","keywords":"","body":"过滤器\n包路径: github.com/caicloud/nirvana/service\n在某些场景下,我们需要从源头对请求进行处理和过滤。Nirvana 提供了 Filter 机制,可以在收到一个请求的时候,立刻进行处理。并根据 Filter 的返回值来确定是直接丢弃该请求还是继续处理。\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nFilter 在整个 Nirvana 框架中处于最高优先级。Filter 返回 false 则表示请求不应该被继续处理,立刻丢弃。\nNirvana 提供的一些 Filters\nRedirectTrailingSlash\n这个过滤器判断 URL Path 尾部是不是存在 /,如果存在就重定向到没有 / 的路径上。\nFillLeadingSlash\n这个过滤器判断 URL Path 首部有没有 /,如果没有就加上 /。\nParseRequestForm\n这个过滤器只针对 application/x-www-form-urlencoded 和 multipart/form-data,然后 Parse 这两种类型的请求体,并转换为 Form 和 File。\n"},"concepts/prefab.html":{"url":"concepts/prefab.html","title":"Prefab","keywords":"","body":"Prefab\n包路径: github.com/caicloud/nirvana/service\nPrefab 是 Nirvana 中一类特殊的 Source。其他的 Source 的数据来源都是来自于请求,而 Prefab 来自于服务端本身。\n// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n可以通过 service 包的 RegisterPrefab() 注册需要的 Prefab。\nPrefab 类型的参数在生成文档和客户端的时候会被忽略,因此不要使用 Prefab 从请求中获取数据。\nNirvana 提供的 Prefab\nContextPrefab\nContextPrefab 是 Nirvana 中实现的唯一一个 Prefab,即 service.ContextPrefab。这个 Prefab 将框架传递给它的与请求绑定的 context 返回回去。\n使用方法如下:\nvar someAPI = def.Definition{\n ...\n Parameters: []def.Parameter{\n ...\n {\n Source: def.Prefab,\n Name: \"context\",\n },\n ...\n },\n ...\n}\n\n只需要将业务函数对应位置的 Parameter 设置为 Prefab,名称为 context 即可。\n但是一般情况下,我们不应该这样使用 ContextPrefab。请参考 Modifier 和 Context\n"},"concepts/modifier.html":{"url":"concepts/modifier.html","title":"Modifier","keywords":"","body":"Modifier\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,每一个 API 都有一个对应的 Definition。在我们实际开发过程中,经常会要求 API 和 业务函数有一致的行为表现。比如每个业务函数的第一个参数都是 Context。在这种场景下,如果每个 Definition 都需要去描述这个参数,那么 Definition 会显得非常冗余。因此 Nirvana 提供了 Definition Modifer 机制,允许在 Definition 生效之前,对 Definition 进行修改。\n这样就能通过 Modifier 完成 Definition 公共部分的构建,而每个 Definition 实际上要填写的部分就是只与自身业务相关的信息。Modifier 如下:\ntype DefinitionModifier func(d *definition.Definition)\n\nNirvana 提供的 Modifiers\n在使用 nirvana init 创建的项目中,可以在 pkg/apis/modifiers 下查看启用的 Modifiers。 \n默认启用的 Modifiers 包括:FirstContextParameter,ConsumeAllIfConsumesIsEmpty,ProduceAllIfProducesIsEmpty,ConsumeNoneForHTTPGet,ConsumeNoneForHTTPDelete,ProduceNoneForHTTPDelete。\nFirstContextParameter\n这个 Modifier 为所有 Definition 的第一个参数添加上名为 context 的 Prefab。启用之后,所有业务函数的第一个参数必须是 context.Context。\nConsumeAllIfConsumesIsEmpty\n这个 Modifier 为所有 Consumes 为空的 Definition 加上 */*。\nProduceAllIfProducesIsEmpty\n这个 Modifier 为所有 Produces 为空的 Definition 加上 */*。\nConsumeNoneForHTTPGet\n这个 Modifier 为所有 HTTP GET 类型的 Definition 加上空的 Consumer,即允许请求体为空。\nProduceNoneForHTTPDelete\n这个 Modifier 为所有 HTTP Delete 类型的 Definition 加上空的 Producer,即允许响应体为空。\nLastErrorResult\n这个 Modifier 为所有的 Definition 的最后一个返回值加上 definition.Error。\n"},"concepts/middleware.html":{"url":"concepts/middleware.html","title":"Middleware","keywords":"","body":"中间件\n包路径: github.com/caicloud/nirvana/definition\nNirvana 中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下: \n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过 Chain 进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。\n中间件添加在 Descriptor 中:\ndef.Descriptor{\n Path: \"/path\",\n Middlewares: []def.Middleware{SomeMiddleware},\n}\n\n添加成功后,所有前缀匹配 /path 的请求都会执行这个中间件。\n注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。\n中间件执行顺序\n如果以下路径都添加了中间件:\n1. /\n2. /path\n3. /path/path2\n\n那么如果存在请求 /path/path2/others 且成功匹配的情况下,中间件的执行按照 1 -> 2 -> 3 的顺序。\n中间件只与 URL Path 有关,因此如果多个 Descriptor 中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。\n"},"concepts/context.html":{"url":"concepts/context.html","title":"Context","keywords":"","body":"Context\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,Context 用于传递请求的上下文。Context 中包含 HTTP 的 Request 和 ResponseWriter。可是使用 service 包的 HTTPContextFrom() 方法获得 HTTP Context。HTTP Context 相关接口如下:\n// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\nNirvana 框架会为每个请求构建这样的 HTTPContext。如有必要,可以通过这些接口拿到与请求相关的所有数据。\n在一个请求路由匹配成功后,Nirvana 会把对应的 HTTPContext 传递给中间件,然后由中间件调用链继续传递。最终经由 ContextPrefab 传递给业务函数。\n中间件不应该修改 HTTPContext,除非您明确知道如何修改。\n"},"concepts/source.html":{"url":"concepts/source.html","title":"Parameter Generator","keywords":"","body":"Parameter Generator\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 8 种类型的 Source:Path,Query,Header,Form,File,Body,Auto,Prefab。\n每种 Source 对应一个 Generator。这些 Generator 负责一种类型的参数的验证和类型转换工作。\n// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n如果 Nirvana 默认提供的 Generator 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Generator:\n// RegisterParameterGenerator register a generator.\nfunc RegisterParameterGenerator(generator ParameterGenerator) error\n\n"},"concepts/destination.html":{"url":"concepts/destination.html","title":"Destination Handler","keywords":"","body":"Destination Handler\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 3 种类型的 Destination:Meta,Data,Error。\n每种 Destination 对应一个 Handler。这些 Handler 负责一种类型的返回结果的数据转换工作。\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n如果 Nirvana 默认提供的 Handler 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Handler:\n// RegisterDestinationHandler registers a type handler.\nfunc RegisterDestinationHandler(handler DestinationHandler) error\n\nDefinition Handler 存在优先级,优先级高的 Handler 先执行。并且执行之后会返回 goon,用来确定是否需要执行下一个 Handler。\n"},"concepts/error.html":{"url":"concepts/error.html","title":"错误包","keywords":"","body":"错误包\n包路径: github.com/caicloud/nirvana/errors\nError 介绍\n在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在 golang 中,错误需要实现 error 接口。即:\ntype error interface {\n Error() string\n}\n\n这种形式的 error 接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此 Nirvana 对于这种错误,都会以 500 Internal Server Error 的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。\n于是 Nirvana 提供了一个新的接口:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\n在业务函数中,仍然以 error 的形式返回错误。但是框架会检查返回的错误是否实现了 Error 接口。如果实现了,就会以 Code() 的返回值作为 HTTP 状态码,Message() 的返回值作为数据返回。\nerrors 包\n为了方便使用,Nirvana 提供了 errors 包用于生成 error。创建 error 的方式有两种:\n\n方法一\n\nvar somethingNotCorrect = errors.BadRequest.Build(\"ProjectName:ModuleName:SomethingNotCorrect\", \"${name} is not correct\")\n\nfunc SomeFunction() error {\n // Do something\n return somethingNotCorrect.Error(something.Name)\n}\n\n\n方法二\n\nfunc SomeFunction() error {\n return errors.BadRequest.Error(\"${name} is not correct\", something.Name)\n}\n\n这两种方法都可以创建 error,但是第一种方法比第二种多出更多特性:\n\n第一种方法支持使用 somethingNotCorrect.Derived(err) 的形式判断一个 err 是否由这个错误工厂生成。\n第一种方法带有 Reason,方便客户端判断错误类型。\n\n因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。\nerror 的 Reason\n在实际的业务中,HTTP 状态码并不足以表达业务中繁复的错误。因此我们将 HTTP 状态码视为错误大类(比如 NotFound 表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。\n这样做有两个优势:\n\n通过 HTTP 状态码即可大致判断一个错误的行为\n通过具体错误的 Reason 来唯一确定一个错误\n\n在常见的商业 API 中,我们也经常看到使用数字 ID 来标志的错误。但是数字 ID 的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的 ID,也就是 Reason。\n我们建议 Reason 的格式满足:\n项目名[:模块名]:错误名\n国际化\n使用 errors 包生成的错误会记录每个占位符的名称和值,保存在 data 字段中,可以在客户端使用 data 里的值进行文本国际化。\n使用范例\n在业务函数中使用 errors:\n\nvar messageNotExist = errors.NotFound.Build(\"MyProject:Message:MessageNotExist\", \"there is no message with id ${id}\")\n\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n if id > 100 {\n return nil, messageNotExist.Error(id)\n }\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n编译运行后可以得到结果:\n访问 curl http://localhost:8080/apis/v1/messages/100,即可得到一个 200 的响应,响应体为:\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n访问 curl http://localhost:8080/apis/v1/messages/101,即可得到一个 404 的响应,响应体为:\n{\"reason\":\"MyProject:Message:MessageNotExist\",\"message\":\"there is no message with id 101\",\"data\":{\"id\":\"101\"}}\n"},"concepts/method.html":{"url":"concepts/method.html","title":"方法包","keywords":"","body":"方法包\n包路径: github.com/caicloud/nirvana/definition/method\n在 Nirvana 中,业务函数是 API 请求的 Handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。\n为了保证业务与 API 定义的无关性,Nirvana 提供了 method 包,用于分离实例的创建和 API 定义。\nAPI 定义:\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: method.Get(&message.Container{}, \"ListMessages\"),\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n业务方法:\n// Container contains example title and content of messages.\ntype Container struct {\n Title string\n Content string\n}\n\n// NewContainer creates Container\nfunc NewContainer(title, content string) *Container {\n return &Container{title, content}\n}\n\n// ListMessages returns all messages.\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \nmain.go 中创建实例并通过 Put() 函数放到方法容器中(需要在服务启动之前完成):\nmethod.Put(message.NewContainer(\"Method Example\", \"Method Content\"))\n\n然后编译运行,访问 http://localhost:8080/apis/v1/messages 即可得到返回结果:\n[{\"id\":0,\"title\":\"Method Example 0\",\"content\":\"Method Content 0\"},{\"id\":1,\"title\":\"Method Example 1\",\"content\":\"Method Content 1\"},{\"id\":2,\"title\":\"Method Example 2\",\"content\":\"Method Content 2\"},{\"id\":3,\"title\":\"Method Example 3\",\"content\":\"Method Content 3\"},{\"id\":4,\"title\":\"Method Example 4\",\"content\":\"Method Content 4\"},{\"id\":5,\"title\":\"Method Example 5\",\"content\":\"Method Content 5\"},{\"id\":6,\"title\":\"Method Example 6\",\"content\":\"Method Content 6\"},{\"id\":7,\"title\":\"Method Example 7\",\"content\":\"Method Content 7\"},{\"id\":8,\"title\":\"Method Example 8\",\"content\":\"Method Content 8\"},{\"id\":9,\"title\":\"Method Example 9\",\"content\":\"Method Content 9\"}]\nmethod 包介绍\nmethod 包是一个全局实例容器,每种类型对应一个实例。\n具体实例类型\n使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的 *message.Container 实例。\n其中 Put(ins insterface{}) 函数用于将一个实例放置到全局容器中,形成 类型-实例 的对应关系。\nGet(typIns interface{}, method string) 用于生成一个匿名函数,生成的函数的签名没有方法的 receiver 部分,例如:\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error)\n生成匿名函数:\nfunc (ctx context.Context, count int) ([]Message, error)\n但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。\n这就是 Get() 函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会 panic。\n注意,Get() 函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说 &Container{} 和 (*Container)(nil) 是一样的。\n接口实例类型\n除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。\n设置接口实例:\nmethod.PutInterface((*ArbitraryInterface)(nil), instance)\n\n获取接口实例:\nmethod.Get((*ArbitraryInterface)(nil), \"MethodName\")\n\n"},"concepts/configurer.html":{"url":"concepts/configurer.html","title":"配置器机制","keywords":"","body":"配置器机制\n包路径: github.com/caicloud/nirvana\nNirvana 在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。\nNirvana 的 Config 实现了 Configurer 机制,用于单独配置每一项信息:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config {\n ...\n}\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\nNirvana 提供的 Configurers\nIP(ip string) Configurer\n设置监听的 IP 地址。\nPort(port uint16) Configurer\n设置监听的端口。\nTLS(certFile, keyFile string) Configurer\n设置 TLS 证书和密钥。\nLogger(logger log.Logger) Configurer\n设置 Server 在运行过程中使用的 Logger,用于输出错误。\nFilter(filters ...service.Filter) Configurer\n添加 Filter。\nModifier(modifiers ...service.DefinitionModifier) Configurer\n添加 Modifier。\nDescriptor(descriptors ...definition.Descriptor) Configurer\n添加 API 描述。所有的 API 都通过这个 Configurer 添加到 Nirvana 的 Server 里。\n"},"concepts/plugin.html":{"url":"concepts/plugin.html","title":"插件机制","keywords":"","body":"插件机制\nNirvana 的 Config 除了使用 Configurer 配置基本信息以外,还提供了插件机制。\n插件接口:\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n插件实现了这个接口之后,即可通过 nirvana 包提供的方法进行注册:\nfunc RegisterConfigInstaller(ci ConfigInstaller)\n\n一般情况下,插件应该通过插件 package 的 init() 进行注册。然后提供相应的 Configurer 在 Nirvana 的 Config 中添加插件配置。\nPlugin Framework\n一个基本的插件框架如下:\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\n"},"concepts/clients.html":{"url":"concepts/clients.html","title":"多客户端整合","keywords":"","body":"多客户端整合\n默认情况下,我们会为每个服务生成如下结构的客户端:\nclient\n├── client.go\n├── v1\n│ ├── client.go\n│ └── types.go\n└── v2\n\n在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:\nclientset\n├── svca\n│ ├── client.go\n│ ├── v1\n│ │ ├── client.go\n│ │ └── types.go\n│ └── v2\n└── svcb\n ├── client.go\n ├── v1\n │ ├── client.go\n │ └── types.go\n └── v2\n整合客户端\n为了演示这个过程,我们逐步构建这个项目。\n创建项目\n首先创建 clientset 项目,用于保存所有服务的客户端:\n$ cd $GOPATH/src/\n$ mkdir clientset\n然后创建两个服务项目(仅用于演示):\n$ nirvana init svca\n$ nirvana init svcb\n即创建了 svca 和 svcb 两个服务项目。\n生成客户端\n生成 svca 的客户端:\n$ cd $GOPATH/src/svca\n$ nirvana client --output ../clientset/svca\n生成 svcb 的客户端:\n$ cd $GOPATH/src/svcb\n$ nirvana client --output ../clientset/svcb\n此时 clientset 的项目结构如下:\nclientset\n├── svca\n│ ├── client.go\n│ └── v1\n│ ├── client.go\n│ └── types.go\n└── svcb\n ├── client.go\n └── v1\n ├── client.go\n └── types.go\n这样所有客户端都在一个项目中,不需要依赖其他服务项目。\n统一网关访问\n在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。\n创建 ClientSet\n在 clientset 中创建 clientset.go:\n$ cd $GOPATH/src/clientset\n$ touch clientset.go\nclientset.go 代码如下:\npackage clientset\n\nimport (\n svca \"clientset/svca\"\n svcb \"clientset/svcb\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a clientset.\ntype Interface interface {\n // SvcA returns a client for svc a.\n SvcA() svca.Interface\n // SvcB returns a client for svc b.\n SvcB() svcb.Interface\n}\n\n// ClientSet contains multiple clients.\ntype ClientSet struct {\n svcA svca.Interface\n svcB svcb.Interface\n}\n\n// NewClientSet creates a new client set.\nfunc NewClientSet(cfg *rest.Config) (Interface, error) {\n c := &ClientSet{}\n var err error\n\n c.svcA, err = svca.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n c.svcB, err = svcb.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClientSet creates a new client set or panic if an error occurs.\nfunc MustNewClientSet(cfg *rest.Config) Interface {\n c, err := NewClientSet(cfg)\n if err != nil {\n panic(err)\n }\n return c\n}\n\n// SvcA returns a client for svc a.\nfunc (c *ClientSet) SvcA() svca.Interface {\n return c.svcA\n}\n\n// SvcB returns a client for svc b.\nfunc (c *ClientSet) SvcB() svcb.Interface {\n return c.svcB\n}\n\n使用 ClientSet\nClientSet 的使用方法和普通 Client 没有太大区别:\nfunc main() {\n cli := clientset.MustNewClientSet(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.SvcA().V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n"},"plugins/logger.html":{"url":"plugins/logger.html","title":"系统日志插件","keywords":"","body":"系统日志插件\n包路径: github.com/caicloud/nirvana/plugins/logger\n系统日志插件是一个伪插件。这个插件本身没有按照 Plugin Framework 编写,只是为了通过 config 包的 Command 暴露 Flag。\n这个插件暴露三个选项:\n// Option contains basic configurations of logger.\ntype Option struct {\n // Debug is logger level.\n Debug bool `desc:\"Debug mode. Output all logs\"`\n // Level is logger level.\n Level int32 `desc:\"Log level. This field is no sense if debug is enabled\"`\n // OverrideGlobal modifies nirvana global logger.\n OverrideGlobal bool `desc:\"Override global logger\"`\n}\n启用 Debug 模式后,Level 就无效。如果 OverrideGlobal 为 true,那么除了设置当前 Server 的 logger 以外,还会设置全局的 logger。\n"},"plugins/reqlog.html":{"url":"plugins/reqlog.html","title":"请求日志插件","keywords":"","body":"请求日志插件\n包路径: github.com/caicloud/nirvana/plugins/reqlog\n请求日志插件会添加一个在 / 上的中间件,用于打印所有路由匹配成功的请求的日志。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nDefault() nirvana.Configurer\n启用插件并使用默认配置\n\n\nLogger(l log.Logger) nirvana.Configurer\n设置 Logger\n\n\nDoubleLog(enable bool) nirvana.Configurer\n启用或关闭双重日志,即请求开始一条日志,请求结束一条日志\n\n\nSourceAddr(enable bool) nirvana.Configurer\n启用或关闭显示源地址\n\n\nRequestID(enable bool) nirvana.Configurer\n启用或关闭显示请求 ID \n\n\nRequestIDKey(key string) nirvana.Configurer\n设置请求 ID 的 key,默认为 X-Request-ID\n\n\n\n"},"plugins/metrics.html":{"url":"plugins/metrics.html","title":"监控指标插件","keywords":"","body":"监控指标插件\n包路径: github.com/caicloud/nirvana/plugins/metrics\n监控指标插件基于 Prometheus,提供了一个 API 用于暴露服务端指标。\n启用插件后,可以直接向 prometheus 包注册指标。采集端可以通过 /metrics 采集指标数据。\nAPI 路径 /metrics 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /metrics\n\n\nNamespace(ns string) nirvana.Configurer\n设置 Prometheus Namespace\n\n\n\n"},"plugins/tracing.html":{"url":"plugins/tracing.html","title":"请求追踪插件","keywords":"","body":"请求追踪插件\n包路径: github.com/caicloud/nirvana/plugins/tracing\n请求追踪插件基于 OpenTracing 接口实现了请求跟踪机制,会在 / 上添加一个中间件用于提取 Tracing 信息。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nCustomTracer(tracer opentracing.Tracer) nirvana.Configurer\n使用自定义的 Tracer\n\n\nDefaultTracer(serviceName string, agentHostPort string) nirvana.Configurer\n使用默认的 Tracer\n\n\nAddHook(hook Hook) nirvana.Configurer\n设置请求 Hook\n\n\n\nHook 接口:\n// Hook allows you to custom information for span.\ntype Hook interface {\n // Exec before request processing\n Before(ctx context.Context, span opentracing.Span)\n // Exec after request processing\n After(ctx context.Context, span opentracing.Span)\n}\n\n"},"plugins/profiling.html":{"url":"plugins/profiling.html","title":"性能分析插件","keywords":"","body":"性能分析插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n性能分析插件添加与 net/http/pprof 一致的 API,用于取得服务运行时信息。\n默认情况下,插件会添加四个 Descriptor:\n\n/debug/pprof\n/debug/pprof/profile\n/debug/pprof/symbol\n/debug/pprof/trace\n\n前缀路径 /debug/pprof 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置路径前缀,默认值为 /debug/pprof\n\n\n\n"},"plugins/version.html":{"url":"plugins/version.html","title":"版本信息插件","keywords":"","body":"版本信息插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n版本信息插件提供一个 API 返回服务的版本信息。API 路径默认为 /version。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /version\n\n\nName(name string) nirvana.Configurer\n设置服务名称\n\n\nVersion(version string) nirvana.Configurer\n设置服务版本号\n\n\nHash(hash string) nirvana.Configurer\n设置服务 hash 值。一般情况下可以设置为代码的 commit 值\n\n\nDescription(description string) nirvana.Configurer\n设置服务的描述\n\n\n\n"},"plugins/healthcheck.html":{"url":"plugins/healthcheck.html","title":"健康检查插件","keywords":"","body":"健康检查插件\n包路径: github.com/caicloud/nirvana/plugins/healthcheck\n健康检查插件提供一个 API 返回服务当前是否健康。API 默认路径为 /healthz。\n插件提供了一个函数接口:\ntype HealthChecker func(ctx context.Context) error\n如果服务正常,则 checker 应该返回 nil。如果服务异常,则返回相应的错误。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /healthz\n\n\nChecker(checker HealthChecker) nirvana.Configurer\n设置 Checker 用于检查服务是否正常。\n\n\n\n"},"topics/start.html":{"url":"topics/start.html","title":"准备工作","keywords":"","body":"准备工作\n开发工具介绍\n\ngolang:https://golang.org/dl/\ndep:https://github.com/golang/dep\ngometalinter:https://github.com/alecthomas/gometalinter\n\n一般情况下,我们使用最新版本的 golang 进行开发,但是需要保证两个 golang 大版本的兼容性。即使用 1.10.x 开发的情况下,需要保持对 1.9.x 的兼容性。\n另外 Nirvana 只使用 dep 进行依赖管理,不要使用其他依赖管理工具对 vendor 进行任何更新操作。并且所有的依赖需要放置在根目录的 vendor 中,不能在任何子目录下使用 vendor。\n除了常规的 go test 测试以外,还需要使用 gometalinter 进行代码检查,gometalinter 的配置文件在根目录的 config.json 中。\n工作流程\n在 githuh 上 Fork Nirvana 到自己的账户下,然后下载源码到本地开发目录中:\n$ cd $GOPATH/src\n$ mkdir -p github.com/caicloud/\n$ cd github.com/caicloud/\n$ git clone git@github.com:{your account}/nirvana.git\n在完成修改并提交到自己的 repo 之后,通过 github PR 的形式向 Nirvana 提交代码。\n框架设计概览\nNirvana 框架的设计核心思想是:隔离 API 定义和业务逻辑实现\n也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。\nNirvana 包之间的依赖关系:\n\n\n其中 log 与 errors 是基础包,分别负责日志基础接口和错误处理基础接口。\ndefinition 包包含 Nirvana 框架的 API 定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。\ndefinition/method 帮助用户把实例方法转换为 definition 函数。请参考 方法包。\noperators 中包含了两个组件功能实现了 converters 和 validators,用于 API 参数的类型转换和数据验证。\nservice/router 包实现了基于前缀树的路由和中间件功能。\nservice 包实现了框架 API 路由和处理的所有功能。\nnirvana 包实现了 API Server 以及插件化功能。\nplugins 中包含了许多实现了 nirvana 插件接口的插件。\nconfig 包实现了 Nirvana Command 功能,并提供了从 flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用 Nirvana 的入口包。\nutils 包包含多个工具用于 API 生成,客户端代码生成,项目结构生成。\ncmd/nirvana 是 Nirvana 的主要命令,利用 utils 包帮助用户快速构建项目。\n\n在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。\n"},"topics/log.html":{"url":"topics/log.html","title":"log","keywords":"","body":"log 包\nlog 包提供了一组基础的日志 API 和一个使用了 stderr 进行输出的标准实现。\n标准接口如下:\n// Level is log level of verboser. We strongly recommend you to\n// follow the rules:\n// 1. Use LevelDebug for debug log.\n// 2. Use 1 for important but not frequent log.\n// 3. Use 2 for important and frequent log.\n// 4. Use 3 for not important and not frequent log.\n// 5. Use 4 for not important but frequent log.\n// 6. Use [5, LevelDebug) only if you want to custom log levels.\ntype Level int32\n\nconst (\n // LevelDebug is for debug info.\n LevelDebug Level = math.MaxInt32\n)\n\n// Severity has four classes to correspond with log situation.\ntype Severity string\n\nconst (\n // SeverityInfo is for usual log.\n SeverityInfo Severity = \"INFO\"\n // SeverityWarning is for warning.\n SeverityWarning Severity = \"WARN\"\n // SeverityError is for error.\n SeverityError Severity = \"ERROR\"\n // SeverityFatal is for panic error. The severity means that\n // a logger will output the error and exit immediately.\n // It can't be recovered.\n SeverityFatal Severity = \"FATAL\"\n)\n\n// Verboser is an interface type that implements Info(f|ln) .\n// See the documentation of V for more information.\ntype Verboser interface {\n // Info logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Info(...interface{})\n // Infof logs to the INFO log.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Infof(string, ...interface{})\n // Infoln logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Infoln(...interface{})\n}\n\n// Logger provides a set of methods to output log.\ntype Logger interface {\n Verboser\n // V reports whether verbosity at the call site is at least the requested level.\n // The returned value is a Verboser, which implements Info, Infof\n // and Infoln. These methods will write to the Info log if called.\n V(Level) Verboser\n // Warning logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Warning(...interface{})\n // Warningf logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Warningf(string, ...interface{})\n // Warningln logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Warningln(...interface{})\n // Error logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Error(...interface{})\n // Errorf logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Errorf(string, ...interface{})\n // Errorln logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Errorln(...interface{})\n // Fatal logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Fatal(...interface{})\n // Fatalf logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Fatalf(string, ...interface{})\n // Fatalln logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Fatalln(...interface{})\n // Clone clones current logger with new wrapper.\n // A positive wrapper indicates how many wrappers outside the logger.\n // A negative wrapper indicates how many wrappers should be stripped.\n Clone(wrapper int) Logger\n}\n\n这套日志 API 参考了 glog 的 golang API,并且允许用户接入其他日志系统。\n在实现一个自定义的 logger 之前,需要知道以下几件事情:\n\nlog 包有一个默认的 logger,使用的是 StdLogger。可以通过 SetDefaultLogger() 变更。\n对于不需要输出日志的场景,使用 SilentLogger 的实例而不是 nil.\n正确实现 logger 的 Clone 方法。Clone 方法用于在对 logger 进行包装的时候,获取正确层级的调用栈信息。\n在 Fatal* 时候,使用 os.Exit(1) 进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。\n\n"},"topics/errors.html":{"url":"topics/errors.html","title":"errors","keywords":"","body":"errors 包\nerrors 包类似于标准库的 errors 包,但是提供了方法用于生成格式化的错误和错误判断。\nerrors 包中存在三个概念,分别是 Builder,Factory 和 Error。其中 Builder 用于构建 Factory,Factory 则用于构建特定的 Error。\nFactory 接口如下:\n// Factory can create error from a fixed format.\ntype Factory interface {\n // Error generates an error from v.\n Error(v ...interface{}) error\n // Derived checks if an error was derived from current factory.\n Derived(e error) bool\n}\n\nError 接口如下(这个接口并没有显式定义在 errors 包中):\ntype Error interface {\n error\n Code() int\n Message() interface{}\n}\n\n首先看 Facotry 的两个方法:\n\nError 用于传入参数输出一个真正的错误。\nDerived 则用于判断一个错误是否是由当前的 Factory 生成。\n这样就能够非常方便的错误创建和错误判断了。\n\nFactory 是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同 string format,比如 \"${user} is not found\")。\n通常情况下,有 Factory 和 Error 就足够了。但是为了让错误能够以 HTTP API 的形式向客户端返回,我们还需要给 Factory 加上一些附加属性,用来表示返回的错误码等信息。\n因此在 Factory 之上,构建了 Builder 接口,用于创建具有一类特征的 Factory(比如一类表示 NotFound 的错误)。\nBuilder 接口如下:\n// Builder can build error factories and errros.\ntype Builder interface {\n // Build builds a factory to generate errors with predefined format.\n Build(reason Reason, format string) Factory\n // Error immediately creates an error without reason.\n Error(format string, v ...interface{}) error\n}\n\nBuilder 可以构建带有 reason 和 format 的 Factory。也直接提供了 Error 方法用于直接创建出 Error。\n目前 errors 包提供的 Builder 主要是以 HTTP 状态码作为基础的:\n// These factory builders is used to build error factory.\nvar (\n BadRequest = newKind(400) // RFC 7231, 6.5.1\n Unauthorized = newKind(401) // RFC 7235, 3.1\n PaymentRequired = newKind(402) // RFC 7231, 6.5.2\n Forbidden = newKind(403) // RFC 7231, 6.5.3\n NotFound = newKind(404) // RFC 7231, 6.5.4\n MethodNotAllowed = newKind(405) // RFC 7231, 6.5.5\n NotAcceptable = newKind(406) // RFC 7231, 6.5.6\n ProxyAuthRequired = newKind(407) // RFC 7235, 3.2\n RequestTimeout = newKind(408) // RFC 7231, 6.5.7\n Conflict = newKind(409) // RFC 7231, 6.5.8\n Gone = newKind(410) // RFC 7231, 6.5.9\n LengthRequired = newKind(411) // RFC 7231, 6.5.10\n PreconditionFailed = newKind(412) // RFC 7232, 4.2\n RequestEntityTooLarge = newKind(413) // RFC 7231, 6.5.11\n RequestURITooLong = newKind(414) // RFC 7231, 6.5.12\n UnsupportedMediaType = newKind(415) // RFC 7231, 6.5.13\n RequestedRangeNotSatisfiable = newKind(416) // RFC 7233, 4.4\n ExpectationFailed = newKind(417) // RFC 7231, 6.5.14\n Teapot = newKind(418) // RFC 7168, 2.3.3\n UnprocessableEntity = newKind(422) // RFC 4918, 11.2\n Locked = newKind(423) // RFC 4918, 11.3\n FailedDependency = newKind(424) // RFC 4918, 11.4\n UpgradeRequired = newKind(426) // RFC 7231, 6.5.15\n PreconditionRequired = newKind(428) // RFC 6585, 3\n TooManyRequests = newKind(429) // RFC 6585, 4\n RequestHeaderFieldsTooLarge = newKind(431) // RFC 6585, 5\n UnavailableForLegalReasons = newKind(451) // RFC 7725, 3\n\n InternalServerError = newKind(500) // RFC 7231, 6.6.1\n NotImplemented = newKind(501) // RFC 7231, 6.6.2\n BadGateway = newKind(502) // RFC 7231, 6.6.3\n ServiceUnavailable = newKind(503) // RFC 7231, 6.6.4\n GatewayTimeout = newKind(504) // RFC 7231, 6.6.5\n HTTPVersionNotSupported = newKind(505) // RFC 7231, 6.6.6\n VariantAlsoNegotiates = newKind(506) // RFC 2295, 8.1\n InsufficientStorage = newKind(507) // RFC 4918, 11.5\n LoopDetected = newKind(508) // RFC 5842, 7.2\n NotExtended = newKind(510) // RFC 2774, 7\n NetworkAuthenticationRequired = newKind(511) // RFC 6585, 6\n)\n\n这个包方便了用户创建能够被 Nirvana 识别的错误,但是如果业务逻辑中如果不希望引入对 errors 包的依赖,可以自行实现错误包,只要产出的错误符合 Error 接口即可。\n"},"topics/definition.html":{"url":"topics/definition.html","title":"definition","keywords":"","body":"definition 包\ndefinition 包包含了 Nirvana 的 API 定义,用于描述 API 的参数与返回值。\n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n// Method is an alternative of HTTP method. It's more clearer than HTTP method.\n// A definition method binds a certain HTTP method and a success status code.\ntype Method string\n\nconst (\n // List binds to http.MethodGet and code http.StatusOK(200).\n List Method = \"List\"\n // Get binds to http.MethodGet and code http.StatusOK(200).\n Get Method = \"Get\"\n // Create binds to http.MethodPost and code http.StatusCreated(201).\n Create Method = \"Create\"\n // Update binds to http.MethodPut and code http.StatusOK(200).\n Update Method = \"Update\"\n // Patch binds to http.MethodPatch and code http.StatusOK(200).\n Patch Method = \"Patch\"\n // Delete binds to http.MethodDelete and code http.StatusNoContent(204).\n Delete Method = \"Delete\"\n // AsyncCreate binds to http.MethodPost and code http.StatusAccepted(202).\n AsyncCreate Method = \"AsyncCreate\"\n // AsyncUpdate binds to http.MethodPut and code http.StatusAccepted(202).\n AsyncUpdate Method = \"AsyncUpdate\"\n // AsyncPatch binds to http.MethodPatch and code http.StatusAccepted(202).\n AsyncPatch Method = \"AsyncPatch\"\n // AsyncDelete binds to http.MethodDelete and code http.StatusAccepted(202).\n AsyncDelete Method = \"AsyncDelete\"\n)\n\n// Source indicates which place a value is from.\ntype Source string\n\nconst (\n // Path means value is from URL path.\n Path Source = \"Path\"\n // Query means value is from URL query string.\n Query Source = \"Query\"\n // Header means value is from request header.\n Header Source = \"Header\"\n // Form means value is from request body and content type must be\n // \"application/x-www-form-urlencoded\" and \"multipart/form-data\".\n Form Source = \"Form\"\n // File means value is from request body and content type must be\n // \"multipart/form-data\".\n File Source = \"File\"\n // Body means value is from request body.\n Body Source = \"Body\"\n // Auto identifies a struct and generate field values by field tag.\n //\n // Tag name is \"source\". Its value format is \"Source,Name\".\n //\n // ex.\n // type Example struct {\n // Start int `source:\"Query,start\"`\n // ContentType string `source:\"Header,Content-Type\"`\n // }\n Auto Source = \"Auto\"\n // Prefab means value is from a prefab generator.\n // A prefab combines data to generate value.\n Prefab Source = \"Prefab\"\n)\n\n// Destination indicates the target type to place function results.\ntype Destination string\n\nconst (\n // Meta means result will be set into the header of response.\n Meta Destination = \"Meta\"\n // Data means result will be set into the body of response.\n Data Destination = \"Data\"\n // Error means the result is an error and should be treated specially.\n // An error occurs indicates that there is no data to return. So the\n // error should be treated as data and be writed back to client.\n Error Destination = \"Error\"\n)\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Instance is a custom data.\n Instance interface{}\n}\n\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Summary is a one-line brief description of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nDescriptor 结构体包含具有如下含义的字段:\n\nAPI 路径\n可被 Middlewares,Definitions,Children 继承的字段\n其他与 API 路径同等级别的字段\n\n如果希望对 Descriptor 进行扩展,需要遵守上面这些规则。\nDefinition 结构体包含了一个具体的 API 定义:\n\nAPI 方法,这个方法是一个抽象方法,用于描述一种行为(比如 Create)。\nAPI 参数和返回值定义\n其他与具体 API 同等级别的字段\n\n如果希望对 Definition 进行扩展,需要遵守上面这些规则。\nParameter 和 Result 分别对应 API 的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。\n在上面的定义中,存在两个额外功能:\n\n在 Descriptor 中提供了 Middleware\n在 Parameter 和 Result 中,提供了 Operator\n\n其中 Middleware 提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而 Operator 则针对单个的业务参数和返回值,可以对值进行验证和修改。\ndefinition 包除了包含对 API 的定义以外,还提供了一些函数,帮助快速构建 Definitions 和 Operators:\n// MIME types\nconst (\n // acceptTypeAll indicates a accept type from http request.\n // It means client can receive any content.\n // Request content type in header \"Content-Type\" must not set to \"*/*\".\n // It only can exist in request header \"Accept\".\n // In most time, it locate at the last element of \"Accept\".\n // It's default value if client have not set \"Accept\" header.\n MIMEAll = \"*/*\"\n MIMENone = \"\"\n MIMEText = \"text/plain\"\n MIMEJSON = \"application/json\"\n MIMEXML = \"application/xml\"\n MIMEOctetStream = \"application/octet-stream\"\n MIMEURLEncoded = \"application/x-www-form-urlencoded\"\n MIMEFormData = \"multipart/form-data\"\n)\n\n// OperatorFunc creates operator by function.\n// function must has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to identify field.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc OperatorFunc(kind string, f interface{}) Operator\n\n"},"topics/method.html":{"url":"topics/method.html","title":"definition/method","keywords":"","body":"method 包\n在 definition 包中,可以看到 Definition.Function 必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method 包提供了一个实例方法容器,帮助用户把实例方法转换为函数。\n容器如下:\n// Container contains instances and mappings.\ntype Container struct {\n ...\n}\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc (c *Container) Put(instance interface{})\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc (c *Container) PutInterface(iface interface{}, instance interface{})\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc (c *Container) Get(instance interface{}, method string) interface{}\n\n这个实例方法容器分离了方法的 Get 和 Put 过程。也就是可以在声明 API 时,使用 Get 获取某个实例的方法,之后再在服务启动逻辑里 Put 真正的实例,即 Get 可以在 Put 之前使用。\n这个主要是利用了 golang 的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。\nmethod 包还提供了一个全局的 Container:\nvar defaultContainer = NewContainer()\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc Put(instance interface{}) {\n defaultContainer.Put(instance)\n}\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc PutInterface(iface interface{}, instance interface{}) {\n defaultContainer.PutInterface(iface, instance)\n}\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc Get(instance interface{}, method string) interface{} {\n return defaultContainer.Get(instance, method)\n}\n\n一般情况下,用户会使用这个全局的容器。\n"},"topics/converter.html":{"url":"topics/converter.html","title":"operators/converter","keywords":"","body":"converter 包\nconverter 包提供了一个 Converter 实现,帮助用户快速构建名为 converter 的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `converter`.\nconst OperatorKind = \"converter\"\n\n// Converter describes a converter.\ntype Converter interface {\n definition.Operator\n}\n\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter {\n return definition.OperatorFunc(OperatorKind, f)\n}\n\n这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为 Operator。\n"},"topics/validator.html":{"url":"topics/validator.html","title":"operators/validator","keywords":"","body":"validator 包\nvalidator 包提供了一系列的方法帮助用户快速生成用于校验参数的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `validator`.\nconst OperatorKind = \"validator\"\n\n// Category distinguishs validation type based on different Validator implementation.\ntype Category string\n\nconst (\n // CategoryVar indicates that the validator can validate basic built-in types.\n // Types: string, int*, uint*, bool.\n CategoryVar Category = \"Var\"\n // CategoryStruct indicates that the validator can validate struct.\n CategoryStruct Category = \"Struct\"\n // CategoryCustom indicates the validator is a custom validator.\n CategoryCustom Category = \"Custom\"\n)\n\n// Validator describes an interface for all validator.\ntype Validator interface {\n definition.Operator\n // Category indicates validator type.\n Category() Category\n // Tag returns tag.\n Tag() string\n // Description returns description of current validator.\n Description() string\n}\n\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n// Struct returns an operator to validate a structs exposed fields, and automatically validates nested structs, unless otherwise specified\n// and also allows passing of context.Context for contextual validation information.\nfunc Struct(instance interface{}) Validator\n\n// String creates validator for string type.\nfunc String(tag string) Validator\n\n// Int creates validator for int type.\nfunc Int(tag string) Validator\n\n// Int64 creates validator for int64 type.\nfunc Int64(tag string) Validator\n\n// Int32 creates validator for int32 type.\nfunc Int32(tag string) Validator\n\n// Int16 creates validator for int16 type.\nfunc Int16(tag string) Validator\n\n// Int8 creates validator for int8 type.\nfunc Int8(tag string) Validator\n\n// Byte creates validator for byte type.\nfunc Byte(tag string) Validator\n\n// Uint creates validator for uint type.\nfunc Uint(tag string) Validator\n\n// Uint64 creates validator for uint64 type.\nfunc Uint64(tag string) Validator\n\n// Uint32 creates validator for uint32 type.\nfunc Uint32(tag string) Validator\n\n// Uint16 creates validator for uint16 type.\nfunc Uint16(tag string) Validator\n\n// Uint8 creates validator for uint8 type.\nfunc Uint8(tag string) Validator\n\n// Bool creates validator for bool type.\nfunc Bool(tag string) Validator\n\n目前支持三种类型的验证,分别对应 golang 基础类型,结构体类型和自定义类型。目前验证方法基于 gopkg.in/go-playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。\n"},"topics/router.html":{"url":"topics/router.html","title":"service/router","keywords":"","body":"router 包\nrouter 包实现了基于前缀树的路由,并提供了三种类型的路由节点:\n\n字符串类型节点\n正则类型节点(包括一个全匹配类型节点)\n剩余路径类型节点\n\n字符串类型节点:\n// stringNode describes a string router node.\ntype stringNode struct {\n handler\n children\n // prefix is the fixed string to match path.\n prefix string\n}\n\n字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与 prefix 完全匹配。\n正则类型节点:\n// index contains the key and it's index of the submatches.\ntype index struct {\n // Key is the name for the value.\n Key string\n // Pos is the index of value in submatches.\n Pos int\n}\n\n// regexpNode contains information for matching a regexp segment.\ntype regexpNode struct {\n handler\n children\n // indices contains all positions to get values from submatches.\n indices []index\n // exp is the regular expression.\n exp string\n // regexp is a regexp instance to match.\n regexp *regexp.Regexp\n}\n\n正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。\n全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的 .*:\n// fullMatchRegexpNode is an optimizing of RegexpNode.\ntype fullMatchRegexpNode struct {\n handler\n children\n // key is the name for the only value.\n key string\n}\n\n这是对正则表达式的一个常用特例的优化,快速进行全匹配。\n正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个 / 之前。\n剩余路径类型节点:\n// pathNode matches all rest path.\ntype pathNode struct {\n handler\n // key is the key for the rest path.\n key string\n}\n\n这个节点匹配剩余所有路径。\n下面用一个例子来说明这几个节点:\nAPI Path: /apis/v1/{regexp:[a-z]{1,2}}/{fullmatch}/{path:*}\nMatched Path: /apis/v1/ab/something/the/rest/path\nGenerated Nodes:\n String Node: /apis/v1/ -> /apis/v1/\n Regexp Node: regexp:[a-z]{1,2} -> ab\n String Node: / -> /\n Full Match Node: fullmatch:.* -> something\n String Node: / -> /\n Path Node: * -> the/rest/path\n\n一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。\n在上面的路径节点中,每个节点都可以绑定一个 Inspector:\n// Inspector can select an executor to execute.\ntype Inspector interface {\n // Inspect finds a valid executor to execute target context.\n // It returns an error if it can't find a valid executor.\n Inspect(context.Context) (Executor, error)\n}\n\n// Executor executs with a context.\ntype Executor interface {\n // Execute executes with context.\n Execute(context.Context) error\n}\n\n路径匹配完成后,会调用匹配链的最后一个节点的 Inspector 来生成一个能够处理当前的路由上下文的 Executor。Inspector 如果能返回一个 Executor,router 会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个 Executor。如果不能返回 Executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。\n中间件接口如下:\n// RoutingChain contains the call chain of middlewares and executor.\ntype RoutingChain interface {\n // Continue continues to execute the next middleware or executor.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call RoutingChain.Continue() and pass the context.\ntype Middleware func(context.Context, RoutingChain) error\n\n对于中间件而言,处理完当前的任务之后只需要调用 RoutingChain 将 Context 通过 Continue 传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用 Continue 实际上是调用的 Executor,因此所有中间件的 Continue 执行完成之后,请求也处理完成了。\n注:这个包里所有的接口都不会被用户直接使用,用户只能通过 definition 包进行 API 定义,然后由 service 包进行路由构建和匹配。\n"},"topics/service.html":{"url":"topics/service.html","title":"service","keywords":"","body":"service 包\nservice 包实现了 Nirvana 的 API 处理框架:\n Service.ServeHTTP()\n ----------------------\n ↓ ↑\n|-----Filters------| ↑\n ↓ ↑\n|---Router Match---| ↑\n ↓ ↑\n|-------------Middlewares------------|\n ↓ ↑\n|-------------Executor---------------|\n ↓ ↑\n|-ParameterGenerators-|-DestinationHandlers-|\n ↓ ↑\n|------------User Function-----------|\nservice 包的入口是 Builder:\n// Builder builds service.\ntype Builder interface {\n // Logger returns logger of builder.\n Logger() log.Logger\n // SetLogger sets logger to server.\n SetLogger(logger log.Logger)\n // Modifier returns modifier of builder.\n Modifier() DefinitionModifier\n // SetModifier sets definition modifier.\n SetModifier(m DefinitionModifier)\n // Filters returns all request filters.\n Filters() []Filter\n // AddFilters add filters to filter requests.\n AddFilter(filters ...Filter)\n // AddDescriptors adds descriptors to router.\n AddDescriptor(descriptors ...definition.Descriptor) error\n // Middlewares returns all router middlewares.\n Middlewares() map[string][]definition.Middleware\n // Definitions returns all definitions. If a modifier exists, it will be executed.\n Definitions() map[string][]definition.Definition\n // Build builds a service to handle request.\n Build() (Service, error)\n}\n\ntype Service interface {\n http.Handler\n}\n\n// DefinitionModifier is used in Server. It's used to modify definition.\n// If you want to add some common data into all definitions, you can write\n// a customized modifier for it.\ntype DefinitionModifier func(d *definition.Definition)\n\n\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nBuilder 构建 Service 来提供 HTTP 服务。因此 Builder 提供了多个方法用于设置生成服务需要的日志,Definition 修改器,请求过滤器,API 描述符。构建完成的 Service 实际上是一个 http.Handler,用来处理请求。\n其中 Definition 修改器用于在生成路由之前修改 API Definition。请求过滤器则是在 Service 执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。\nBuilder 还会将 API Definition 转换为路由需要的数据结构,涉及到以下内容:\n\n对应 Consumes 和 Produces 的 Consumer 和 ProducerConsumer 针对请求的 body,将数据转换为业务函数需要的数据类型(通常是结构体)。Producer 则是将业务函数的返回值转换并写入到响应的 body 中。 \n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n\n对应 Prefab 类型的 Prefab 生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。service 包里提供了一个 Context Prefab 生成器,简单的将参数里的 context 返回出去,供业务函数使用。// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n\n对应 golang 基础类型的转换器这些转换器一般是用于将请求里的 query,header 等简单字符串数据转换为 golang 的基础类型,供业务函数使用。// Converter is used to convert []string to specific type. Data must have one\n// element at least or it will panic.\ntype Converter func(ctx context.Context, data []string) (interface{}, error)\n\n\n用于封装请求的 ValueContainer这个接口是对 Request 的一次封装,方便获取对应位置的字符串数据。// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n\n用于封装响应的 ResponseWriterResponseWriter 是对 http.ResponseWriter 的一个扩展,提供了一些功能方便中间件使用。// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n\n用于合并请求和响应的 ContextHTTPContext 实现了 Context 接口,包装了请求的信息。作为路由上下文使用。// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\n\n用于生成业务函数的参数的 ParameterGeneratorParameterGenerator 是真正的参数生成器,通过调用 Consumer,Converter,Prefab 等来完成业务函数的参数生成。// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n\n用于将业务函数返回值写入 Response 的 DestinationHandlerDestinationHandler 是业务函数返回值处理器,通过调用 Producer 将返回值转换为字节写入响应中。在 DestinationHandler 中,错误是会进行特殊处理的。如果业务函数返回的错误符合 Error 接口,则会根据这个接口来生成错误码和返回数据结构。\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nconst (\n // HighPriority for error type.\n // If an error occurs, ignore meta and data.\n HighPriority int = 100\n // MediumPriority for meta type.\n MediumPriority int = 200\n // LowPriority for data type.\n LowPriority int = 300\n)\n\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n\n\n注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。\n"},"topics/nirvana.html":{"url":"topics/nirvana.html","title":"nirvana","keywords":"","body":"nirvana 包\nnirvana 包在根目录中,实现了 Nirvana Server 和插件系统。这个包放置在根目录中是因为这个包是 Nirvana 提供的用于生成 API Server 的顶级包,而且其依赖的所有包只来自 Nirvana 自身和标准库(config 包依赖了 nirvana 包和其他第三方的包,实际上是一个借助了 Nirvana 和第三方功能的扩展)。\nServer 接口如下:\n// Server is a complete API server.\n// The server contains a router to handle all requests form clients.\ntype Server interface {\n // Serve starts to listen and serve requests.\n // The method won't return except an error occurs.\n Serve() error\n // Shutdown gracefully shuts down the server without interrupting any\n // active connections.\n Shutdown(ctx context.Context) error\n // Builder create a service builder for current server. Don't use this method directly except\n // there is a special server to hold http services. After server shutdown, clean resources via\n // returned cleaner.\n // This method always returns same builder until cleaner is called. Then it will\n // returns new one.\n Builder() (builder service.Builder, cleaner func() error, err error)\n}\n\n创建 Server 需要使用 Config:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Locked checks if the config is locked.\nfunc (c *Config) Locked() bool\n\n// IP returns listenning ip.\nfunc (c *Config) IP() string\n\n// Port returns listenning port.\nfunc (c *Config) Port() uint16\n\n// Logger returns logger.\nfunc (c *Config) Logger() log.Logger\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config\n\n// Config gets external config by name. This method is for plugins.\nfunc (c *Config) Config(name string) interface{}\n\n// Set sets external config by name. This method is for plugins.\n// Set a nil config will delete it.\nfunc (c *Config) Set(name string, config interface{})\n\n// NewServer creates a nirvana server. After creation, don't modify\n// config. Also don't create another server with current config.\nfunc NewServer(c *Config) Server\n\n在 Config 中,存在一些 Server 级别的配置,这些配置是针对当前服务的。而对应的 Configurer 也在当前包中。如果需要对配置进行扩展,增强 Server 功能,则可以增加相应字段,否则应该使用插件机制增加功能。\n在 Config 中可以看到 Config 和 Set 方法,这两个方法就是提供给插件允许插件设置自身的配置的。\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的 Install 方法安装插件。\n"},"topics/config.html":{"url":"topics/config.html","title":"config","keywords":"","body":"config 包\nconfig 包利用 github.com/spf13/cobra 和 github.com/spf13/viper 实现了 Nirvana Command 和配置读取,为 Nirvana 服务启动提供了命令行支持。\nNirvanaCommand 接口如下:\n// NirvanaCommand is a nirvana command.\ntype NirvanaCommand interface {\n // EnablePlugin enables plugins.\n EnablePlugin(plugins ...Plugin) NirvanaCommand\n // AddOption will fill up options from flags/ENV/config after executing.\n // A non-empty prefix is recommended. It's used to divide option namespaces.\n AddOption(prefix string, options ...CustomOption) NirvanaCommand\n // Add adds a field by key.\n // If you don't have any struct to describe an option, you can use the method to\n // add a single field into nirvana command.\n // `pointer` must be a pointer to golang basic data type (e.g. *int, *string).\n // `key` must a config key. It's like 'nirvana.ip' and 'myconfig.name.firstName'.\n // The key will be converted to flag and env (e.g. --nirvana-ip and NIRVANA_IP).\n // If you want a short flag for the field, you can only set a one-char string.\n // `desc` describes the field.\n Add(pointer interface{}, key string, shortFlag string, desc string) NirvanaCommand\n // Execute runs nirvana server.\n Execute(descriptors ...definition.Descriptor) error\n // ExecuteWithConfig runs nirvana server from a custom config.\n ExecuteWithConfig(cfg *nirvana.Config) error\n // Command returns a command for command.\n Command(cfg *nirvana.Config) *cobra.Command\n // SetHook sets nirvana command hook.\n SetHook(hook NirvanaCommandHook)\n // Hook returns nirvana command hook.\n Hook() NirvanaCommandHook\n}\n\nNirvanaCommand 扩展了 nirvana 包的插件能力:\n// CustomOption must be a pointer to struct.\n//\n// Here is an example:\n// type Option struct {\n// FirstName string `desc:\"Desc for First Name\"`\n// Age uint16 `desc:\"Desc for Age\"`\n// }\n// The struct has two fields (with prefix example):\n// Field Flag ENV Key (In config file)\n// FirstName --example-first-name EXAMPLE_FIRST_NAME example.firstName\n// Age --example-age EXAMPLE_AGE example.age\n// When you execute command with `--help`, you can see the help doc of flags and\n// descriptions (From field tag `desc`).\n//\n// The priority is:\n// Flag > ENV > Key > The value you set in option\ntype CustomOption interface{}\n\n// Plugin is for plugins to collect configurations\ntype Plugin interface {\n // Name returns plugin name.\n Name() string\n // Configure configures nirvana config via current options.\n Configure(cfg *nirvana.Config) error\n}\nNirvana Command 要求每个插件提供一个 Option,并且实现 Plugin 接口。用户在 Comamnd 中传递 Option 来启用插件,并且将插件 Option 中的公开字段根据一定的规则(规则参考上面的注释)从 flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。\n由于 Nirvana Config 服务配置的特殊性,config 包提供了一个 Option 来表达这些配置:\n// Option contains basic configurations of nirvana.\ntype Option struct {\n // IP is the IP to listen.\n IP string `desc:\"Nirvana server listening IP\"`\n // Port is the port to listen.\n Port uint16 `desc:\"Nirvana server listening Port\"`\n // Key is private key for HTTPS.\n Key string `desc:\"TLS private key (PEM format) for HTTPS\"`\n // Cert is certificate for HTTPS.\n Cert string `desc:\"TLS certificate (PEM format) for HTTPS\"`\n}\n\n除了插件 Option 以外,config 包会从以下文件列表中读取配置文件:\n目录:\n ./\n ./config/\n {ExecutableFilePath}/\n {ExecutableFilePath}/config/\n /etc/nirvana/\n\n配置文件名:\n nirvana.yaml\n nirvana.toml\n nirvana.json\n如果读取到配置文件,那么除了使用 Option 接收配置以外,还可以通过一些帮助方法获取配置:\n// IsSet checks to see if the key has been set in any of the data locations.\n// IsSet is case-insensitive for a key\nfunc IsSet(key string) bool\n\n// Set sets the value for the key in the override regiser.\n// Set is case-insensitive for a key.\n// Will be used instead of values obtained via\n// flags, config file, ENV, default, or key/value store.\nfunc Set(key string, value interface{})\n\n// Get can retrieve any value given the key to use.\n// Get is case-insensitive for a key.\n// Get has the behavior of returning the value associated with the first\n// place from where it is set. Viper will check in the following order:\n// override, flag, env, config file, key/value store, default\n//\n// Get returns an interface. For a specific value use one of the Get____ methods.\nfunc Get(key string) interface{}\n\n// GetBool returns the value associated with the key as a bool.\nfunc GetBool(key string) bool\n\n// GetDuration returns the value associated with the key as a time.Duration.\nfunc GetDuration(key string) time.Duration\n\n// GetFloat32 returns the value associated with the key as a float32.\nfunc GetFloat32(key string) float32\n\n// GetFloat64 returns the value associated with the key as a float64.\nfunc GetFloat64(key string) float64\n\n// GetInt returns the value associated with the key as a int.\nfunc GetInt(key string) int\n\n// GetInt8 returns the value associated with the key as a int.\nfunc GetInt8(key string) int8\n\n// GetInt16 returns the value associated with the key as a int.\nfunc GetInt16(key string) int16\n\n// GetInt32 returns the value associated with the key as a int32.\nfunc GetInt32(key string) int32\n\n// GetInt64 returns the value associated with the key as a int64.\nfunc GetInt64(key string) int64\n\n// GetString returns the value associated with the key as a string.\nfunc GetString(key string) string\n\n// GetStringSlice returns the value associated with the key as a []string.\nfunc GetStringSlice(key string) []string\n\n// GetUint returns the value associated with the key as a uint.\nfunc GetUint(key string) uint\n\n// GetUint8 returns the value associated with the key as a uint.\nfunc GetUint8(key string) uint8\n\n// GetUint16 returns the value associated with the key as a uint.\nfunc GetUint16(key string) uint16\n\n// GetUint32 returns the value associated with the key as a uint32.\nfunc GetUint32(key string) uint32\n\n// GetUint64 returns the value associated with the key as a uint64.\nfunc GetUint64(key string) uint64\n\n注:如果在 nirvana 包中对 Config 进行了扩展,涉及到字段的改变,也需要在这个包中修改 Option 和相应的功能。\n"},"topics/rest.html":{"url":"topics/rest.html","title":"rest","keywords":"","body":"rest 包\nrest 包提供了一个简单的 REST Client 用于访问 API 服务。\n在这个包中,主要包含三个概念:Config,Client 和 Request。Config 是 Client 的配置,用于创建 Client。而 Request 则由 Client 创建,用来表示每一个 REST 请求。\n// RequestExecutor implements a http client.\ntype RequestExecutor interface {\n Do(req *http.Request) (*http.Response, error)\n}\n\n// Config is rest client config.\ntype Config struct {\n // Scheme is http scheme. It can be \"http\" or \"https\".\n Scheme string\n // Host must be a host string, a host:port or a URL to a server.\n Host string\n // Executor is used to execute http requests.\n // If it is empty, http.DefaultClient is used.\n Executor RequestExecutor\n}\n\n// Client implements builder pattern for http client.\ntype Client struct {\n ...\n}\n\n// NewClient creates a client.\nfunc NewClient(cfg *Config) (*Client, error)\n\n// Request creates an request with specific method and url path.\n// The code is only for checking if status code of response is right.\nfunc (c *Client) Request(method string, code int, url string) *Request\n\n// Request describes a http request.\ntype Request struct {\n ...\n}\n\n// Path sets path parameter.\nfunc (r *Request) Path(name string, value interface{}) *Request\n\n// Query sets query parameter.\nfunc (r *Request) Query(name string, values ...interface{}) *Request\n\n// Header sets header parameter.\nfunc (r *Request) Header(name string, values ...interface{}) *Request\n\n// Form sets form parameter.\nfunc (r *Request) Form(name string, values ...interface{}) *Request\n\n// File sets file parameter.\nfunc (r *Request) File(name string, file interface{}) *Request\n\n// Body sets body parameter.\nfunc (r *Request) Body(contentType string, value interface{}) *Request\n\n// Meta sets header result.\nfunc (r *Request) Meta(value *map[string]string) *Request\n\n// Data sets body result. value must be a pointer.\nfunc (r *Request) Data(value interface{}) *Request\n\n// Do executes the request.\nfunc (r *Request) Do(ctx context.Context) error\n\nRequest 保存了一个请求的数据,用 Path,Query,Header,Form,File,Body 来设置请求的相关值,Meta 和 Data 来设置用于接收响应的值(都是指针)。然后 Do 用于真正发起请求,并完成 Meta 和 Data 的填充。\nRequest 的方法与 API Definition 的除了 Prefab 和 Error 之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于 Prefab 是由服务端生成而不由客户端提交,Error 由 Do 方法返回,因此这两种类型没有对应的方法。\n注:这个 Client 会被由命令 nirvana client 生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。 \n"},"topics/utils.html":{"url":"topics/utils.html","title":"utils","keywords":"","body":"utils 系列包\nutils 系列包包含:\n\napi 包,用于读取项目源码,并生成与 API 有关的所有数据结构,产出的结构可用于生成文档和客户端。\nbuilder 包,利用 api 包读取源码并生成 API 数据。\ngenerators/golang 包,利用 api 包提供的数据结构生成 golang 客户端。\ngenerators/swagger 包,利用 api 包提供的数据结构生成 API 文档。\ngenerators/utils 包,提供公共工具给其他生成器使用。\nprinter 包,提供了一个在 Terminal 中打印表格的功能。\nproject 包,提供了基础工具用于读取项目配置文件,通常是 nirvana.yaml。\n\n除了 printer 包以外,其他包都是用于生成文档和客户端用的。\n在 api 包中,提供了如下功能:\n\n对应 golang type 的 Type为了能让 golang type 能转换为可读的数据结构,构建了 Type 相关类型:\n// TypeName is unique name for go types.\ntype TypeName string\n\n// TypeNameInvalid indicates an invalid type name.\nconst TypeNameInvalid = \"\"\n\n// StructField describes a field of a struct.\ntype StructField struct {\n // Name is the field name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package path that qualifies a lower case (unexported)\n // field name. It is empty for upper case (exported) field names.\n PkgPath string\n // Type is field type name.\n Type TypeName\n // Tag is field tag.\n Tag reflect.StructTag\n // Offset within struct, in bytes.\n Offset uintptr\n // Index sequence for Type.FieldByIndex.\n Index []int\n // Anonymous shows whether the field is an embedded field.\n Anonymous bool\n}\n\n// FuncField describes a field of function.\ntype FuncField struct {\n // Name is the field name.\n Name string\n // Type is field type name.\n Type TypeName\n}\n\n// Type describes an go type.\ntype Type struct {\n // Name is short type name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package for this type.\n PkgPath string\n // Kind is type kind.\n Kind reflect.Kind\n // Key is map key type. Only used in map.\n Key TypeName\n // Elem is the element type of map, slice, array, pointer.\n Elem TypeName\n // Fields contains all struct fields of a struct.\n Fields []StructField\n // In presents fields of function input parameters.\n In []FuncField\n // Out presents fields of function output results.\n Out []FuncField\n // Conflict identifies the index of current type in a list of\n // types which have same type names. In most cases, this field is 0.\n Conflict int\n}\n\n\n对应 Nirvana API 的 Definition此处的 Definition 大部分字段与 definition 包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source definition.Source\n // Name is the name to get value from a request.\n Name string\n // Description describes the parameter.\n Description string\n // Type is parameter object type.\n Type TypeName\n // Default is encoded default value.\n Default []byte\n}\n\n// Result describes a function result.\ntype Result struct {\n // Destination is the target for the result.\n Destination definition.Destination\n // Description describes the result.\n Description string\n // Type is result object type.\n Type TypeName\n}\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Type is result object type.\n Type TypeName\n // Instance is encoded instance data.\n Instance []byte\n}\n\n// Definition is complete version of def.Definition.\ntype Definition struct {\n // Method is definition method.\n Method definition.Method\n // HTTPMethod is http method.\n HTTPMethod string\n // HTTPCode is http success code.\n HTTPCode int\n // Summary is a brief of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function TypeName\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n\n用于表示代码注释的 Comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是 +nirvana:api=option:\"value\"。\nconst (\n // CommentsOptionDescriptors is the option name of descriptors.\n CommentsOptionDescriptors = \"descriptors\"\n // CommentsOptionModifiers is the option name of modifiers.\n CommentsOptionModifiers = \"modifiers\"\n // CommentsOptionAlias is the option name of alias.\n CommentsOptionAlias = \"alias\"\n // CommentsOptionOrigin is the option name of original name.\n CommentsOptionOrigin = \"origin\"\n)\n\n// Comments is parsed from go comments.\ntype Comments struct {\n lines []string\n options map[string][]string\n}\n\nvar optionsRegexp = regexp.MustCompile(`^[ \\t]*\\+nirvana:api[ \\t]*=(.*)$`)\nvar options = []string{CommentsOptionDescriptors, CommentsOptionModifiers, CommentsOptionAlias}\n\n// ParseComments parses comments and extracts nirvana options.\nfunc ParseComments(comments string) *Comments\n\n\n用于分析源码的 AnalyzerAnalyzer 可以读取源码,获取结构对象和注释信息。\n// Analyzer analyzes go packages.\ntype Analyzer struct {\n ...\n}\n\n// NewAnalyzer creates a code ananlyzer.\nfunc NewAnalyzer(root string) *Analyzer\n\n// Import imports a package and all packages it depends on.\nfunc (a *Analyzer) Import(path string) (*types.Package, error)\n\n// PackageComments returns comments above package keyword.\n// Import package before calling this method.\nfunc (a *Analyzer) PackageComments(path string) []*ast.CommentGroup\n\n// Packages returns packages under specified directory (including itself).\n// Import package before calling this method.\nfunc (a *Analyzer) Packages(parent string, vendor bool) []string\n\n// FindPackages returns packages which contain target.\n// Import package before calling this method.\nfunc (a *Analyzer) FindPackages(target string) []string\n\n// Comments returns immediate comments above pos.\n// Import package before calling this method.\nfunc (a *Analyzer) Comments(pos token.Pos) *ast.CommentGroup\n\n// ObjectOf returns declaration object of target.\nfunc (a *Analyzer) ObjectOf(pkg, name string) (types.Object, error)\n\n\n集合上述所有功能的 ContainerContainer 读取源码并进行分析,产出 API 相关的所有定义和类型信息。API 定义和类型信息可以用来生成 API 文档和客户端。\n// Definitions describes all APIs and its related object types.\ntype Definitions struct {\n // Definitions holds mappings between path and API descriptions.\n Definitions map[string][]Definition\n // Types contains all types used by definitions.\n Types map[TypeName]*Type\n}\n\n// Container contains informations to generate APIs.\ntype Container struct {\n ...\n}\n\n// NewContainer creates API container.\nfunc NewContainer(root string) *Container\n\n// AddModifier add definition modifiers to container.\nfunc (ac *Container) AddModifier(modifiers ...service.DefinitionModifier)\n\n// AddDescriptor add descriptors to container.\nfunc (ac *Container) AddDescriptor(descriptors ...definition.Descriptor)\n\n// Generate generates API definitions.\nfunc (ac *Container) Generate() (*Definitions, error)\n\n\n\nbuilder 包相对 api 包来说就简单很多了,这个包里包含一个 API Builder:\n// APIBuilder builds api definitions by specified package.\ntype APIBuilder struct {\n ...\n}\n\n// NewAPIBuilder creates an api builder.\nfunc NewAPIBuilder(root string, paths ...string) *APIBuilder\n\n// Build build api definitions.\nfunc (b *APIBuilder) Build() (*api.Definitions, error)\n\nAPI Builder 首先会利用 Analyzer 去读取指定路径的源码,然后从中找到标记了 modifiers 和 descriptors 选项的注释。两个选项的值对应两个函数,分别返回 Modifier 和 Descriptor。然后动态生成一个 main.go 文件 import 这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用 api 包的 Container 来生成 API 定义和类型信息。API Builder 执行 main.go 后通过 stdout 取得返回值,反序列化成 Definitions 结构,然后再返回给 API Builder 的调用者。这样就完成了对一个项目的 API 信息的提取。\ngolang 包和 swagger 包实际上都是利用了 API Builder 的返回结果,构建出相应的客户端和文档。golang 包会为每一个 API 生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了 rest 包 Client 接口。swagger 包则是利用了 github.com/go-openapi/spec 将 API 定义和类型转换成了 openapi 的定义。\n"},"topics/command.html":{"url":"topics/command.html","title":"cmd/nirvana","keywords":"","body":"nirvana 命令\nNirvana 命令对应的包在 cmd/nirvana 中,目前包括三个命令:\n\ninit,用于初始化标准项目目录结构和必要文件\napi,用于生成 API 文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)\nclient,用于生成 API 对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。\n\n每个命令都是一个目录,互相之间不干扰。每个目录都有一个 init.go 的文件用于把当前的命令加入到 Nirvana 根命令中,比如:\npackage project\n\nimport \"github.com/spf13/cobra\"\n\n// Register registers all commands.\nfunc Register(root *cobra.Command) {\n root.AddCommand(newInitCommand())\n}\n\n然后在 main.go 中 import 这个包并进行命令注册:\nimport (\n \"github.com/caicloud/nirvana/cmd/nirvana/api\"\n \"github.com/caicloud/nirvana/cmd/nirvana/client\"\n \"github.com/caicloud/nirvana/cmd/nirvana/project\"\n \"github.com/caicloud/nirvana/log\"\n \"github.com/spf13/cobra\"\n)\n\nvar root = &cobra.Command{\n Use: \"nirvana\",\n Short: \"Nirvana toolchains\",\n}\n\nfunc main() {\n project.Register(root)\n api.Register(root)\n client.Register(root)\n if err := root.Execute(); err != nil {\n log.Fatalln(err)\n }\n}\n\n接下来以 init 命令为例,说明单个命令的基本结构:\nfunc newInitCommand() *cobra.Command {\n options := &initOptions{}\n cmd := &cobra.Command{\n Use: \"init /path/to/project\",\n Short: \"Create a basic project structure\",\n Long: options.Manuals(),\n Run: func(cmd *cobra.Command, args []string) {\n if err := options.Validate(cmd, args); err != nil {\n log.Fatalln(err)\n }\n if err := options.Run(cmd, args); err != nil {\n log.Fatalln(err)\n }\n },\n }\n options.Install(cmd.PersistentFlags())\n return cmd\n}\n\ntype initOptions struct {\n Boilerplate string\n Version string\n Registries []string\n ImagePrefix string\n ImageSuffix string\n BuildImage string\n RuntimeImage string\n}\n\nfunc (o *initOptions) Install(flags *pflag.FlagSet) {\n flags.StringVar(&o.Boilerplate, \"boilerplate\", \"\", \"Path to boilerplate\")\n flags.StringVar(&o.Version, \"version\", \"v0.1.0\", \"First version of the project\")\n flags.StringSliceVar(&o.Registries, \"registries\", []string{}, \"Docker image registries\")\n flags.StringVar(&o.ImagePrefix, \"image-prefix\", \"\", \"Docker image prefix\")\n flags.StringVar(&o.ImageSuffix, \"image-suffix\", \"\", \"Docker image suffix\")\n flags.StringVar(&o.BuildImage, \"build-image\", \"golang:latest\", \"Golang image for building the project\")\n flags.StringVar(&o.RuntimeImage, \"runtime-image\", \"debian:jessie\", \"Docker base image for running the project\")\n}\n\nfunc (o *initOptions) Validate(cmd *cobra.Command, args []string) error\n\nfunc (o *initOptions) Run(cmd *cobra.Command, args []string) error\n\n基本结构如下:\n\n一个创建命令的私有函数 newInitCommand\n一个表示当前命令的所有参数的 initOptions\nOptions 实现的 Install 方法用于安装 flag 到命令中\nOptions 实现的 Validate 方法用于验证参数是否正确\nOptions 实现的 Run 方法真正执行命令对应的逻辑\n\n\n\n如果需要新增命令扩展 Nirvana 的功能,需要按照上述结构进行开发。\n"},"topics/routes.html":{"url":"topics/routes.html","title":"Routes","keywords":"","body":"Routes\nDefinitions\nDefining routes and be as easy as defining such functions:\nfunc handler(request Request) (Response, error) {\n // do stuff\n // return data\n // or error if anything wrong happened\n}\n\nHowever we can do a lot more with Nirvana framework!\nDeclarative approach to routes definition\nIn Nirvana, routes definitions are documentations, i.e. you will only need to follow the DRY rule, define your routes (w.r.t specific formats) and then we'll try to cover these for you:\n\nbasic test-case generation\nOpenAPI docs generation\nparameter checking (against function signatures)\netc.\n\ndefinition.Descriptor struct\nThis is the core data structure that you'll use, and a typical example looks like this:\ndefinition.Descriptor{\n Path: \"/api\",\n Description: \"here goes your api description\",\n Produces: []string{\"text/plain\"},\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: func(ctx context.Context) (string, error) {\n return \"Hello World!\", nil\n },\n Parameters: []definition.Parameter{},\n Results: []definition.Result{\n {\n Type: definition.Data,\n },\n {\n Type: definition.Error,\n },\n },\n },\n },\n}\n\nTODO: add more\n"},"topics/cli.html":{"url":"topics/cli.html","title":"CLI","keywords":"","body":"CLI\nCLI, or command-line interface is where you put the switches or entrances to your application's different functionalities. You can always adopt a micro-service approach and follow UNIX philosophy to build dedicated application for specific use-case, as you should always do. However you'll still need some good and consistent way to expose different options for people / system that run your application. Therefore it is very good practice to follow good convention and make your CLI unambiguous and first class API as well.\nIn Nirvana, we didn't build CLI framework from scratch and instead adopt Cobra as a default baseline, with some small addition just to boost your experience.\nTODO: more details to follow\n"},"topics/validation.html":{"url":"topics/validation.html","title":"Validation","keywords":"","body":"Validation\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :) (checkout guide below to add your own validation)\n\nFor full example code, see validator.\n"},"topics/openapi.html":{"url":"topics/openapi.html","title":"Open API","keywords":"","body":"OpenAPI\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +caicloud:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\n"},"topics/metrics.html":{"url":"topics/metrics.html","title":"Metrics","keywords":"","body":"Metrics\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig(\"\", 8080).\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 -H 'Content-type: application/json' 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"application/json\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in microseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"125000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"250000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"500000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"2e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"4e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"8e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"125000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"250000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"500000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"2e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"4e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"8e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 53\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 89\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 98\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 0\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\n"}}} \ No newline at end of file diff --git a/docs/en/topics/cli.html b/docs/en/topics/cli.html index 32b0445e..ccaec081 100644 --- a/docs/en/topics/cli.html +++ b/docs/en/topics/cli.html @@ -278,7 +278,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"CLI","level":"1.2.2","depth":2,"next":{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},"previous":{"title":"Routes","level":"1.2.1","depth":2,"path":"topics/routes.md","ref":"topics/routes.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/cli.md","mtime":"2018-08-09T13:31:34.791Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"en"}}); + gitbook.page.hasChanged({"page":{"title":"CLI","level":"1.2.2","depth":2,"next":{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},"previous":{"title":"Routes","level":"1.2.1","depth":2,"path":"topics/routes.md","ref":"topics/routes.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/cli.md","mtime":"2019-08-06T09:48:58.223Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"en"}}); }); diff --git a/docs/en/topics/metrics.html b/docs/en/topics/metrics.html index 090724e8..ff0fd8dc 100644 --- a/docs/en/topics/metrics.html +++ b/docs/en/topics/metrics.html @@ -330,7 +330,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Metrics","level":"1.2.5","depth":2,"previous":{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/metrics.md","mtime":"2018-08-09T13:31:34.795Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"en"}}); + gitbook.page.hasChanged({"page":{"title":"Metrics","level":"1.2.5","depth":2,"previous":{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/metrics.md","mtime":"2019-08-06T09:48:58.223Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"en"}}); }); diff --git a/docs/en/topics/openapi.html b/docs/en/topics/openapi.html index e2d527ba..f78a5b1b 100644 --- a/docs/en/topics/openapi.html +++ b/docs/en/topics/openapi.html @@ -324,7 +324,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Open API","level":"1.2.4","depth":2,"next":{"title":"Metrics","level":"1.2.5","depth":2,"path":"topics/metrics.md","ref":"topics/metrics.md","articles":[]},"previous":{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/openapi.md","mtime":"2018-08-09T13:31:34.797Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"en"}}); + gitbook.page.hasChanged({"page":{"title":"Open API","level":"1.2.4","depth":2,"next":{"title":"Metrics","level":"1.2.5","depth":2,"path":"topics/metrics.md","ref":"topics/metrics.md","articles":[]},"previous":{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/openapi.md","mtime":"2019-08-06T09:48:58.223Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"en"}}); }); diff --git a/docs/en/topics/routes.html b/docs/en/topics/routes.html index ca9349c8..8c67d3c0 100644 --- a/docs/en/topics/routes.html +++ b/docs/en/topics/routes.html @@ -312,7 +312,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Routes","level":"1.2.1","depth":2,"next":{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},"previous":{"title":"Topics","level":"1.2","depth":1,"ref":"","articles":[{"title":"Routes","level":"1.2.1","depth":2,"path":"topics/routes.md","ref":"topics/routes.md","articles":[]},{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},{"title":"Metrics","level":"1.2.5","depth":2,"path":"topics/metrics.md","ref":"topics/metrics.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/routes.md","mtime":"2018-08-09T13:31:34.799Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"en"}}); + gitbook.page.hasChanged({"page":{"title":"Routes","level":"1.2.1","depth":2,"next":{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},"previous":{"title":"Topics","level":"1.2","depth":1,"ref":"","articles":[{"title":"Routes","level":"1.2.1","depth":2,"path":"topics/routes.md","ref":"topics/routes.md","articles":[]},{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},{"title":"Validation","level":"1.2.3","depth":2,"path":"topics/validation.md","ref":"topics/validation.md","articles":[]},{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},{"title":"Metrics","level":"1.2.5","depth":2,"path":"topics/metrics.md","ref":"topics/metrics.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/routes.md","mtime":"2019-08-06T09:48:58.224Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"en"}}); }); diff --git a/docs/en/topics/validation.html b/docs/en/topics/validation.html index 381458f4..a823996b 100644 --- a/docs/en/topics/validation.html +++ b/docs/en/topics/validation.html @@ -309,7 +309,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Validation","level":"1.2.3","depth":2,"next":{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},"previous":{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/validation.md","mtime":"2018-08-09T13:31:34.805Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"en"}}); + gitbook.page.hasChanged({"page":{"title":"Validation","level":"1.2.3","depth":2,"next":{"title":"Open API","level":"1.2.4","depth":2,"path":"topics/openapi.md","ref":"topics/openapi.md","articles":[]},"previous":{"title":"CLI","level":"1.2.2","depth":2,"path":"topics/cli.md","ref":"topics/cli.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"en","gitbook":"*"},"file":{"path":"topics/validation.md","mtime":"2019-08-06T09:48:58.224Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"en"}}); }); diff --git a/docs/search_index.json b/docs/search_index.json index e1d44446..66f1a155 100644 --- a/docs/search_index.json +++ b/docs/search_index.json @@ -1 +1 @@ -{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["!=","\"\"","\"${customer}","\"/\",","\"/api/v1\",","\"/api/v1/some\".","\"/child\",","\"/echo\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"alice\",","\"apach","\"application/x","\"content","\"context\"","\"correspond","\"echo","\"error","\"first","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"messag","\"message\":","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"openapi","\"pluginname\"","\"result","\"second","\"thi","\"v1.0.0\",","\"valid","#","$","${customer})","${name}","%s:%d\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'{\"name\":","(","(*spec.swagger,","(and","(apachebench)","(bool,","(e.g.","(i","(string,",")","*/*","*api.message)","*body)","*nirvana.config)","*plugininstaller)","+nirvana:openapi=tru",".","...","./examples/get","/","//","/debug/pprof","/echo","/echo,","/echo[?msg=]","/go/package/to/your/generated/funct","/go/package/to/your/typ","/metric","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","0","0202","1","10","10,","100)","1000","1000,","101","11","11:18:50.235+08","126","16:34:38.663+08","1:","2.0","2.0\",","200","201","202","204","260","28","2:","2>&1","3","41","500","500,","50554","507","55","73","8080","90","90m.","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.result{","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[text/plain]","\\","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`default`","`json:\"message\"","`json:\"name\"","`name`","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source`","`source`.","ab","abov","above.","above:","accept","accept:","access","actual","ad","add","advanc","aforement","aim","allow","alway","anoth","api","api\",","api.getopenapidefinitions,","appear","application.","application/json\"","arg","around","array","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","avoid","back","basic","basics.","before.","behavior","behavior,","behavior.","below","best","between","bit","block","bodi","body,","body.","body.nam","body.name)","bool):","bool,","box","broken","build","builder","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","built","busniess","by:","c.set(externalconfigname,","caicloud.","call","capabl","care","careful,","case","case,","categori","certain","cfg","cfg)`","chang","charact","characters,","characters.","check","checkout","child","children","children:","children;","cli","client","client,","client.","cmd","code","code()","code,","code.","collect","combin","combination.","come","comma","command,","common","complex","complic","concept","config","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.port())","configa","configa(fielda","configb","configb()","configur","configuration,","configuration:","configure(","configurers:","conflict","consist","const","consum","consume.","consumes.","consumes:","contact:","contain","content","contention(en","contenttyp","context","context,","context.context","context.context,","contribut","contriv","conveni","convention,","convert","convertor,","core","core,","correspond","counter","cpu","creat","create:","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","d","data","data\"","data.","decid","declar","default","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor.","definition.descriptor{","definition.error,","definition.get,","definition.middlewar","definition.paramet","definition.produc","definition.query,","definition:","definitions,","definitions.","definitions:","delet","depend","deriv","describ","descript","description:","descriptor","descriptor'","descriptor,","descriptor.","descriptor:","descriptors.","design","destin","destination:","detail","details,","develop","developmenet","diagnos","differ","direct","directli","disabl","disable()","disabled.","discouraged.","distribut","doc","doc.","doc.go","docs,","docs.","doctoc","document","documentation.","don't","done","done,","draft","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","empti","enabl","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","err","error","error)","error,","error.","error:field","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","etc","etc.","etc;","even","ex.","exact","exampl","example,","example:","execut","expired.","expos","extens","extern","externalconfignam","factori","factory.","facts:","fail","false.","fast","fatal","featur","few","field","fielda.","fieldb.","fields.","fieldtype)","file","file.","filter","final","finally,","find","first","first.","float*,","float64((time.since(starttime))","flow","follow","form","format","format.","format:","formatt","found\")","found\",","framework","framework:","from.","full","func","func(c","func(ctx","function","function.","function:","functions.","funtion","future.","gen","gener","generation,","get","get/list","get/sav","getdefinitions:","gethttpclient(req),","getopenapidefinit","getopenapidefinitions.","getopenapideinit","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","glance,","global","glog.","go","goal","golang","grep","guid","h","handl","handler","handler.","header","header.","headers:","help","helper","here","high","histogram","hold","hood,","http","http://host:port/metrics.","http://localhost:8080/echo","http://localhost:8080/metr","httpctx","httpctx.request()","httpctx.responsewriter()","https://editor.swagger.io/,","i)","i.e.","id","idea","ident","ignored.","impact","implement","implementation,","implemented:","import","improv","includ","include:","incom","increas","index","indic","individu","info","info:","infof","infoln","infoprops:","inform","inherit","init()","inject","input","input(","input,","input.","insid","instal","install(build","install/initi","instanc","instead,","instrument","instrumentation.","int","int)","int*,","int,","int.","integr","intercept","interfac","interface,","interface:","interface{}","intern","introduc","introduct","ip","ip.","is,","it!","it'","it.","it:","json","json.newencoder(os.stdout)","keep","key","key,","key:","kickoff","knob","know","language:","larger","last","latenc","latencies.","layout","length","let'","level","level,","librari","license,","license:","list","listen","load;","log","log.fatal(err)","log.infof(\"listen","log.v(4).info","logger","logic","longer","look","lot","main","main()","make","management,","mani","map[string]str","match","mean","mechan","mention","messag","message()","message,","message.","meta","method","method,","method.","method:","methods,","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","microsecond","middlewaar","middlewar","middlewares.","middlewares:","millisecond","mime","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","modifi","moditi","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","multipl","myself\"}'","n","name","name!\")","name\"),","name()","name,","name.","name:","names.","namespac","namespace.","namespace:","natur","necessary,","need","need.","net/http/pprof.","new","newlin","newmetricsmiddleware(namespac","next","next.continue(ctx)","nil","nil)","nil,","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana:","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","non","note","notice:","now","number","obey","object","occurs,","on","onc","one,","open","openapi","openapi\",","openapi()","openapi,","openapi.","oper","operator'","operator,","operator.","operator;","operators.","operators/valid","operators:","option","optional.","order.","others).","out","output","overrid","p","p90","packag","package,","package.","package:","page.","panic(err)","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parameters,","parameters.","parameters:","parent","parent'","pars","part","partial","pass","patch","path","path(path","path).observe(elapsed)","path,","path.","path:","paths:","performant,","place","playground/validator.v9","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","point","popular?","port","port.","post","pprof","pprof,","pre","prefab","prefix","prefix,","prevent","previou","produc","produce.","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","prometheu","propos","provid","put","queri","quick","quit","random","readable.","ready,","receiv","refer","reflect","regist","relationship","repli","req","req.header.get(\"cont","req.url.path","request","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests:","requir","resourc","resource,","resource.","resp","respons","response.","result","result\",","result.","results,","results.","results:","retrun","return","rewrit","router.","run","run:","same","satisfi","scope","second","see","seen","send","sens","sent.","separ","serv","server","server\",","server,","server.","servic","service!","service.builder,","service.httpcontextfrom(ctx)","service;","services.","set","settings:","sever","severity.","show","shown","signatur","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","sleep","smoothli","snippet","somedefinitions,","somemiddlewar","somemiddlewares,","something.","sourc","source,name[,default=value]","source.","source:","spam","spec.","spec.infoprops{","specif","specifi","specification:","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starts.","starttim","static","statu","step","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","string","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","strongli","struct","struct\",","struct,","struct.","struct:","structur","struct{}","stuff","sub","success","success\",","such","summari","support","support,","support.","sure","swagger","swagger,","swagger.json","symbol","tabl","table:","tag","tags.","take","target","tbd","teach","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","then,","therefore,","though","three","time","time.millisecond)","time.now()","times,","tire","title:","to:","total.","trace","tracing,","translat","tri","two","type","type\"),","type.","type:","types:","u","uint*,","under","understand","unimport","uninstal","uninstall(build","uniqu","unlik","updat","upgrad","url","url:","urlencoded\"","us","usability.","usag","usage.","use:","used.","user","user,","usual","usually,","valid","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation,","validation.","validation:","validator'","validator.","validator.int,","validator.newcustom(","validator.str","valu","value.","values.","var","var,","velocity.","verb","verb,","verbos","veri","verifi","version","version:","via","via:","view","want","warn","we'll","we'v","wealth","well","whole","within","won't","works!","works:","write","written","www","x","yaml","you'll","you'v","{","{...)","{...}","|","}","})","},"],"guides/project.html":["\"\"","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/someapi\"","#","$","$gopath/bin","$gopath/src/","$gopath/src/myproject","$path",".","./bin/myproject","./build/myproject/dockerfil","./myproject","/apis/v1","8080:8080","8080。","=","api","api.go","api。api","bin","build","cd","cmd","contacts:","contain","convert","curl","debian:jessi","definit","dep","description:","descriptor","descriptors.go","dockefile),还有一个","docker","dockerfil","email:","ensur","filter","filters.go","first","framework","github.com/caicloud/nirvana/cmd/nirvana","github.com/golang/dep/cmd/dep","go","golang/dep","golang:latest","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","hosts:","http","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages:","init","ip","localhost:8080","logo","main.go","maintain","make","makefil","makefile,只需要使用简单的","messag","message.go","middlewar","middlewares.go","modifi","modifiers.go","myproject","myproject:v0.1.0","name:","nirvana","nirvana.yaml","nobodi","nobody@nobody.io","p","pkg","prefix:","prefix,那么","project","project:","readme.md","regexp","regexp:","replac","replacement:","request","rules:","run","schemes:","server","u","us","v","v1","vendor","version","version.go","versions:","│","└──","├──","。","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","中也提供了直接打包成镜像的命令:","中间件","中):","为被替换为","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","会生成一个完整的","修改器","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","启动时会打印出","命令启动容器,然后进行访问:","命令就可以完成编译工作:","和","在","在服务启动之后,可以通过浏览器或者命令行访问","在需要发布的时候,通常需要打包成镜像的形式,在","在项目的","如果设置了","字段无效","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","定义","定义相关的代码都在这个目录中","定义,可以修改或删除","对应","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就能够看到","或域名,可以有多个","所有与","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","描述符","文档生成和客户端生成会依赖这个配置文件进行","服务使用的协议,只能填写","正则表达式,用于匹配路径","此时在","每个","比如设置","然后就可以直接使用命令创建项目(请确保","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","用于文档和客户端生成","的","的命令行和其他依赖工具:","的运行,只用于描述项目的信息以及区分不同版本的","的返回结果。","的需要的包定义文件","目录中就能看到编译后的二进制文件,直接运行:","直接编译运行","编译并打包成","编译运行","范例,因此可以直接运行查看效果。","访问","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径替换,因此需要正确设置版本规则。","过滤器","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","那么","配置文件,用于描述项目的基本信息和结构。","镜像","项目","项目。项目结构如下:","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置"],"guides/api.html":["\"/messages\",","\"/messages/{message}\",","\"count\",","\"exampl","\"get","\"list","\"messag","\"number","\"queri","\"thi","&message{","(*message,","([]message,","...","//","/apis/v1/resourc","/apis/v1/resources/{resource}","0;","10,","200","201","202","204",":=","=","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.parameter{","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`source:\"header,cont","`source:\"query,start,default=100\"`","anotherautostruct","api","api。","api,用于获取一条消息:","application/x","array\",","asynccr","asyncdelet","asyncpatch","asyncupd","auto","bodi","body,但是","content","content\",","content\"}","content:","contenttyp","context.context,","count","count)","creat","data","db","def.dataerrorresults(\"a","def.definition{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.query,","default:","default={value}","definit","definitions:","delet","describ","description:","descriptor","descriptor。","destin","entry.","error","error)","exampl","example\",","example\",\"content\":\"exampl","file","form","func","function:","getmessag","getmessage(ctx","get。","get,两者没有区别。","golang","header","http","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","id","id\"),","id\",","id,","id.","id/nam","id:","init","init()","int","int)","json","key","list","listmessag","listmessages(ctx","make([]message,","map[string]string,会写入","messag","message\"),","message\",","message.getmessage,","message.listmessages,","messages\"),","messages\",","messages.","meta","method","method:","multipart/form","name:","nil","nirvana","number","parameters:","patch","path","path:","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","post","prefab","put","queri","register([]def.descriptor{{","request","respons","rest","results:","return","server","sourc","source:","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","specifi","start","string","struct","summari","summary:","tag","titl","title:","type","type\"`","updat","url","urlencod","var","www","{","{\"id\":100,\"title\":\"thi","}","},","}...)","与业务函数的参数名称无关。","业务函数","业务函数返回结果如何放到请求的响应中。","中定义的动作以及对应的","中携带","中,我们建议所有的","中,所有的","之后,编译运行。然后访问","从","从请求的那一部分取得数据,然后传递给业务函数。","但是为了使","修改一个资源的部分内容","内部,比如一个","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","列表的","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","删除一个资源","参数值来源于","参数值来源于当前","参数名称,作为","参数描述","参数来源","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","名称","名称为","和","因为只获取一条消息,此处为","在","在一个","在使用","如果有多个","如果需要给字段设置默认值,则需要使用","定义。","定义了","定义了一个返回","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义,再对应业务函数:","定义:","对于","对于没有","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","成功状态码","或","所有的","接下来我们给项目增加一个","描述","数组包含了这个路径下的所有定义。","方法","方法。","方法。比如某个","方法包。","方法就应该是","方法都是语义层面的,为的是提高","无","是一个短语,用于描述这个","是从","是返回一个资源列表的,那么","更新一个资源(幂等)","有","根据上面的","根据资源唯一","概念","添加","用于描述一个业务函数的参数的来源和默认值。","的","的字段。","的字段。忽略所有没有","的形式。","的版本号。下表中展示了","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的结构体类型,会递归遍历以寻找带有","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型的","类型):","结构体,可以组合成一个:","给项目添加一个","而不是","范例如下:","获取一条消息的","获取资源","获取资源列表","详细描述这个","请求中使用的都是","路径","返回值可以是任意结构,自动转换并写入到","返回值目标","返回的是资源数组,所以使用","这个","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个返回值类型必须是","这是一个工具方法,用于快速生成一个参数结构。","这里添加的业务函数都是以","进行描述的。首先看一个","都是通过","都遵守","里取值。","里获取的。","链接","错误类型,必须是","风格,并且在","默认值"],"guides/doc.html":["$","/home/go/src/myproject","0702","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","8080","api","api.go:179","api.go:87","api.go:95","browser","default","directori","doc","http","http://127.0.0.1:8081","info","ip","listen","nirvana","open","packag","pkg/api","pleas","project","root","serv","serve=\":8081\"","specified,","view","|","会读取","公开给用户使用。于是我们需要给","即可查看文档。","和端口。","在完成了","并使用","提供了一个命令用于从项目中生成文档:","文档","文档截图如下:","服务用于访问这个文档。打开浏览器,访问","生成","的开发工作后,我们需要将","的用户提供一个文档,方便用户阅读。nirvana","端口提供服务。为了防止端口冲突,可以使用","设置监听的","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","这就表示文档生成成功,并且提供了一个","默认情况下,nirvana"],"guides/client.html":["!=","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"context\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","\"myproject/client/v1\"","$","&client{","&client{client},","&client{}","(","(*client,","(c","(interface,","(messag","(message1",")","*client","*client)","*message,","*rest.client","*rest.config)","*v1.client","./client","./client.go","./v1/client.go","./v1/types.go","//","/home/go/src/myproject","0702","10)","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","200,",":=","=","[]message,","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","api","c","c,","c.rest.request(\"get\",","c.v1","c.v1,","cli","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","clients.","contain","content","context.context,","count","count).","creat","data(&messages).","data(message1).","default","describ","directori","do(ctx)","entry.","err","error","error)","func","gener","getmessag","getmessage(ctx","golang","host:","id","id.","import","info","int","int)","interfac","io.read","io.readclos","listmessag","listmessages(ctx","log.fatal(err)","log.info(msgs)","main()","messag","message).","message1","messages.","msgs,","mustnewcli","mustnewclient(cfg","myproject/cli","new","new(message)","newclient","newclient(cfg","newclient(cfg)","nil","nil,","nirvana","nirvana.yaml","occurs.","output","packag","panic","panic(err)","path(\"message\",","pkg/api","project","query(\"count\",","rest","rest.newclient(cfg)","return","root","scheme:","specified,","string","struct","titl","type","types.go","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","var","version","{","|","}","})","└──","├──","中定义。api","使用客户端","依赖的结构体都会被提取出来并生成到","函数即可:","和","多客户端整合。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","指定其他输出目录(目前仅支持生成","支持良好,因此在","文件中,方便客户端使用。","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","生成代码","生成代码:","生成代码:","生成客户端","生成的客户端代码如下:","生成的客户端是版本化的,版本在","的参数和返回值中,尽量避免使用其他接口。","目前客户端生成对接口的支持还不完善,仅仅对","目录下生成","该命令默认会在","调用,可以生成客户端以供使用:","输出日志如下(项目路径和日志时间会有所不同):","限制"],"concepts/cp.html":["!=","&&","//","204",":=","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","application/json","application/octet","application/x","application/xml","conet","consum","consume(r","consumers:","consumer:","content","contenttyp","contenttype()","data","err","error","file","form","github.com/caicloud/nirvana/servic","handl","http","interfac","interface{})","io.read","io.reader,","io.writer,","json.marsh","json.unmarsh","log.fatal(err)","marshal","mime","multipart/form","newsimpleserializer(contenttype)","nil","nirvana","object","object.","pars","produc","produce(w","producers,并且他们的行为和","producers:","producer。","producer:","r","reader","return","serial","servic","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","specif","stream","string","text/plain","type","type.","unmarsh","urlencod","v","v.","w.","write","writer.","www","xml.marshal","xml.unmarsh","{","}","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","与","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","于","则负责将业务函数的返回结果写入到响应体中。","包提供了相应的工具用于注册用户自己的","包路径:","去读取数据并进行类型转换。","只能生成","可能不能满足实际使用需求。因此","和","在","在业务的实际场景中,默认提供的","在接收到","在需要生成","如果接收类型是","如果类型符合","实现了这个接口后,通过","将数据写入到响应。","将类型转换为字节数据写入到响应体中。","并成为","快速生成","或","接口。其中","接口或者是","描述","提供了","注册","添加","用于将请求体中的数据转换为业务函数需要的类型,而","的","的工具","的注册方法即可注册","空的","类型","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","自动处理数据转换,nirvana","说明了请求和响应中的数据类型。为了根据","请求中,content","进行解析。","通常对应于","通常情况下,我们需要快速添加一些","需要实现接口:","默认提供的"],"concepts/operator.html":["!=","\"converter\"}","\"count\",","\"list","\"number","\"queri","\"validator\"}","([]message,","(anytype,","(c","(interface{},","(uint,","*converterforanobject)","*validatorforanobject)","//","0;","10,","1,并且把",":=","=","[]def.operator{","[]def.parameter{","[]definition.operator{newcustom(f,\"custom","anoth","anytyp","anytype)","api","array\",","bool(tag","built","byte(tag","call","concret","context.context,","convert","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","count","count)","creat","custom","data","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","definit","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","descript","description\")}","description:","doc","done","err","error","error)","error)。其中参数的","error.","error。其中","example:","exp:","f","f(context.context,","f.","field","file","for(f","func","func(ctx","func.","function:","gen.","gener","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","go","go.","in()","indic","int","int(tag","int)","int16(tag","int32(tag","int64(tag","int8(tag","interfac","interface{})","interface{},","it'","kind","kind()","list","listmessag","listmessages(ctx","make([]message,","messag","message.listmessages,","messages\"),","messages\",","messages.","method:","name:","newcustom","newcustom(f","nil","nil,","nirvana","number","object","object,","object.","objv2,","one.","oper","operate(ctx","operator.","operators:","operator,那么","operator:","operator:valid","out","out()","paramet","parameters:","playground/validator,提供了用于生成","reader.","recommended.","reflect.typ","replac","result","results:","results。其中","return","second","signature:","source:","specifi","stream","string","string(tag","string)","string,","struct","struct(inst","struct{}","summary:","tag。","type","type.","uint","uint(tag","uint(value),","uint)","uint16(tag","uint32(tag","uint64(tag","uint8(tag","unless","us","user","valid","validate(object.(*object));","validation,","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","valu","var","way","{","{return","}","}),","},","业务函数","中使用","中添加","中,都有一组","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","会从第一个","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","包提供了工具方法用于将转换函数包装成","包的实现基于","包路径:","包还提供了方法用于创建自定义验证器:","可以不同。","和","和业务函数的参数一一对应,而","和返回值的","在","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在每个","在没有","对于结构体类型,在需要的字段上添加名为","并且会检查最后一个","接口,可用于针对单个参数或返回值进行验证和修改:","提供了","提供了两种类型的","方法获取类型,","是具体要验证的类型,不能使用接口。","是链式调用的,也就是说上一个","有时候默认的验证器不能覆盖复杂的验证需求,因此","注意:oper","的","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的情况下,nirvana","的方法:","的最小值为","的示例:","的返回值会作为下一个","类型。","类型。业务函数的参数也响应的变成了","类型是否和业务函数的参数类型一致。","类型转换为了","自定义验证器","转换函数必须符合","这个例子中,验证器要求","这是一个在","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","验证器函数必须符合签名"],"concepts/filter.html":["*http.request)","/","//","/。","/,如果存在就重定向到没有","/,如果没有就加上","application/x","befor","bool","data,然后","fals","false,","file。","fillleadingslash","filter","filtered.","form","func(resp","github.com/caicloud/nirvana/servic","handl","highest","http.responsewriter,","itself.","lifecycle.","matching.","mean","multipart/form","nirvana","pars","parserequestform","path","prioriti","redirecttrailingslash","req","request","request,","request.","return","router","run","type","url","urlencod","want","www","则表示请求不应该被继续处理,立刻丢弃。","包路径:","和","在整个","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","尾部是不是存在","提供了","提供的一些","机制,可以在收到一个请求的时候,立刻进行处理。并根据","框架中处于最高优先级。filter","的路径上。","的返回值来确定是直接丢弃该请求还是继续处理。","过滤器","返回","这两种类型的请求体,并转换为","这个过滤器判断","这个过滤器只针对","首部有没有"],"concepts/prefab.html":["\"context\",","(interface{},","...","//","=","[]def.parameter{","context","context.context)","contextprefab","contextprefab。请参考","creat","data.","def.definition{","def.prefab,","error)","form","github.com/caicloud/nirvana/servic","http","instanc","instance.","interfac","intern","make","make(ctx","modifi","name","name()","name.","name:","nirvana","paramet","parameters:","prefab","prefab。","prefab,即","prefab,名称为","reflect.typ","registerprefab()","request","return","servic","service.contextprefab。这个","someapi","sourc","source:","source。其他的","string","type","type()","type.","unmarsh","var","{","}","},","中一类特殊的","中实现的唯一一个","从请求中获取数据。","但是一般情况下,我们不应该这样使用","使用方法如下:","包的","包路径:","即可。","只需要将业务函数对应位置的","可以通过","和","将框架传递给它的与请求绑定的","提供的","是","来自于服务端本身。","注册需要的","的数据来源都是来自于请求,而","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","设置为","返回回去。"],"concepts/modifier.html":["*/*。","*definition.definition)","api","consum","consumeallifconsumesisempti","consumenoneforhttpget","consumer,即允许请求体为空。","context","context.context。","context。在这种场景下,如果每个","definit","definition.error。","definitionmodifi","definition。在我们实际开发过程中,经常会要求","delet","firstcontextparamet","func(d","github.com/caicloud/nirvana/servic","http","init","lasterrorresult","modif","modifi","modifiers。","nirvana","pkg/apis/modifi","prefab。启用之后,所有业务函数的第一个参数必须是","produc","produceallifproducesisempti","producenoneforhttpdelet","producer,即允许响应体为空。","type","下查看启用的","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","中,每一个","为所有","为所有的","为空的","会显得非常冗余。因此","公共部分的构建,而每个","创建的项目中,可以在","加上","加上空的","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包路径:","和","在","在使用","如下:","完成","实际上要填写的部分就是只与自身业务相关的信息。modifi","提供了","提供的","机制,允许在","生效之前,对","的","的最后一个返回值加上","的第一个参数添加上名为","类型的","这个","这样就能通过","进行修改。","都有一个对应的","都需要去描述这个参数,那么","默认启用的"],"concepts/middleware.html":["\"/path\",","/","//","/path","/path/path2","/path/path2/oth","1","1.","2","2.","3","3.",">","[]def.middleware{somemiddleware},","actions.","call","carri","chain","chain)","chain.continue()","contain","context.","continu","continue(context.context)","def.descriptor{","describ","descriptor","error","execut","form","func(context.context,","github.com/caicloud/nirvana/definit","interfac","middlewar","middlewares.","middlewares:","next","nirvana","on,","pass","path","path:","subsequ","type","url","want","{","}","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","且成功匹配的情况下,中间件的执行按照","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中间件","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件添加在","中:","包路径:","如果以下路径都添加了中间件:","有关,因此如果多个","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","添加成功后,所有前缀匹配","的请求都会执行这个中间件。","的顺序。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","那么如果存在请求"],"concepts/context.html":["\"application/x","\"content","\"multipart/form","([]string,","(multipart.file,","(reader","(string,","*http.request","//","bodi","body()","body.","bool","bool)","called.","check","code.","contain","content.","contentlength","contentlength()","contenttyp","context","context.","contextprefab","context。http","data","data\".","describ","extend","false,","file","file(key","form","form(key","github.com/caicloud/nirvana/servic","header","header(key","headerwrit","headerwritable()","http","http.responsewrit","http.responsewriter.","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","int","interfac","io.readcloser,","key.","length","method","nirvana","ok","once.","path","path(key","queri","query(key","read","reader","recal","request","request()","request.","responsewrit","responsewriter()","responsewriter。可是使用","return","routepath()","servic","statu","statuscod","statuscode()","string","string)","string,","string.","type","type\"","urlencoded\"","valid","valu","valuecontain","valuecontainer()","whether","writeheader()","writeheader().","written","www","{","}","中包含","中间件不应该修改","中,context","会把对应的","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","包的","包路径:","和","在","在一个请求路由匹配成功后,nirvana","方法获得","框架会为每个请求构建这样的","用于传递请求的上下文。context","的","相关接口如下:"],"concepts/source.html":["(interface{},","//","8","[]consumer,","consum","container.","context.context,","current","data","defaultvalu","definition.sourc","error","error)","func","gener","generate(ctx","generator.","generator。这些","generator:","github.com/caicloud/nirvana/servic","interfac","interface{},","name","nirvana","object","paramet","parameter.","parametergener","parametergenerator)","reflect.type)","regist","registerparametergener","registerparametergenerator(gener","return","servic","sourc","source()","source:path,query,header,form,file,body,auto,prefab。","string,","target","type","us","valid","valid.","validate(nam","valu","valuecontainer,","vc","whether","{","}","不能满足实际的业务需求,可以通过","包提供的方法注册自定义的","包路径:","如果","对应一个","每种","种类型的","负责一种类型的参数的验证和类型转换工作。","默认提供了","默认提供的"],"concepts/destination.html":["(goon","(or","//","1.","2.","3","3.","[]producer,","api","bool,","case","code","code.","context","context.","context.context,","continue):","current","deal","definit","definition.destin","definition.typ","descid","destin","destination()","destinationhandl","destinationhandler)","destination:meta,data,error。","err","error","error)","error.","everyth","execute.","false,","finish","func","github.com/caicloud/nirvana/servic","go","goon,用来确定是否需要执行下一个","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler:","higher","int","int,","interfac","interface{})","look","mean","next","nil","nil.","nirvana","noth","nothing)","ok,","prior","prioriti","priority()","produc","reflect.type)","regist","registerdestinationhandl","registerdestinationhandler(handl","result","return","run.","servic","someth","statu","subsequ","success","take","target","three","true,","type","type.","us","valid","validate(target","valu","value.","whether","wrong,","wrong.","{","}","不能满足实际的业务需求,可以通过","先执行。并且执行之后会返回","包提供的方法注册自定义的","包路径:","如果","存在优先级,优先级高的","对应一个","每种","种类型的","负责一种类型的返回结果的数据转换工作。","默认提供了","默认提供的"],"concepts/error.html":["\"${name}","\"exampl","\"there","\"thi","${id}\")","&message{","(*message,","//","100","101\",\"data\":{\"id\":\"101\"}}","200","404","500","=",">","api","code","code()","code.","common","contain","content\",","content\"}","content:","context.context,","correct\")","correct\",","curl","data","err","error","error()","error)","error.","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。创建","error,但是第一种方法比第二种多出更多特性:","example\",","example\",\"content\":\"exampl","func","getmessag","getmessage(ctx","github.com/caicloud/nirvana/error","golang","handler","http","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/101,即可得到一个","id","id,","id.","id:","id,也就是","implement","inform","int","int)","interfac","interface,","interface{}","intern","messag","message()","messagenotexist","messagenotexist.error(id)","nil","nil,","nirvana","notfound","object","reason","reason。","reason,方便客户端判断错误类型。","return","server","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","specifi","statu","string","title:","type","us","var","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","}","},","中,我们也经常看到使用数字","中,错误需要实现","为了方便使用,nirvana","于是","介绍","使用","使用范例","包","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包路径:","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在实际的业务中,http","在常见的商业","字段中,可以在客户端使用","对于这种错误,都会以","我们建议","接口。即:","接口。如果实现了,就会以","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","提供了","提供了一个新的接口:","方法一","方法二","是否由这个错误工厂生成。","来唯一确定一个错误","来标志的错误。但是数字","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","的","的响应,响应体为:","的形式判断一个","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的方式有两种:","的格式满足:","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的返回值作为","的返回值作为数据返回。","第一种方法带有","第一种方法支持使用","编译运行后可以得到结果:","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","访问","这两种方法都可以创建","这样做有两个优势:","这种形式的","通过","通过具体错误的","里的值进行文本国际化。","错误包","项目名[:模块名]:错误名"],"concepts/method.html":["\"count\",","\"list","\"listmessages\"),","\"method","\"methodname\")","\"number","\"queri","&container{title,","&container{}","(*container)(nil)","([]message,","(ctx","(m","*contain","*container)","*message.contain","//","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0;","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","10,","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","9\",\"content\":\"method","9\"}]",":=","=","[]def.parameter{","[{\"id\":0,\"title\":\"method","api","array\",","contain","content","content\"))","content}","context.context,","count","count)","creat","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","description:","error)","exampl","example\",","func","function:","get()","get(typin","github.com/caicloud/nirvana/definition/method","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","http://localhost:8080/apis/v1/messag","instance)","insterface{})","int)","interface{},","list","listmessag","listmessages(ctx","main.go","make([]message,","messag","messages\"),","messages\",","messages.","method","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","name:","newcontain","newcontainer(title,","nirvana","number","panic。","parameters:","put()","put(in","receiv","results:","return","source:","specifi","string","string)","struct","summary:","titl","type","var","{","}","},","业务方法:","中创建实例并通过","中,业务函数是","为了保证业务与","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","其中","具体实例类型","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","包介绍","包是一个全局实例容器,每种类型对应一个实例。","包路径:","包,用于分离实例的创建和","即可得到返回结果:","和","在","定义。","定义的无关性,nirvana","定义:","实例","实例。","接口实例类型","提供了","方法包","是一样的。","注意,get()","然后编译运行,访问","生成匿名函数:","用于生成一个匿名函数,生成的函数的签名没有方法的","的对应关系。","类型","获取接口实例:","设置接口实例:","请求的","这就是","部分,例如:","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。"],"concepts/configurer.html":["(c","*config","*config)","...","...configurer)","...definition.descriptor)","...service.definitionmodifier)","...service.filter)","//","api","config","config.","configur","configure(configur","configurers.","describ","descriptor(descriptor","error","filter(filt","filter。","func","func(c","github.com/caicloud/nirvana","ip","ip(ip","keyfil","locked.","log.logger)","logger(logg","logger,用于输出错误。","modifier(modifi","modifier。","nirvana","occur","panic","port(port","server","server.","string)","struct","tl","tls(certfile,","type","uint16)","us","{","}","包路径:","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在运行过程中使用的","地址。","实现了","描述。所有的","提供的","机制,用于单独配置每一项信息:","添加","添加到","的","设置","设置监听的","设置监听的端口。","证书和密钥。","都通过这个","配置器机制","里。"],"concepts/plugin.html":["\"pluginname\"","(i","*config)","*nirvana.config)","*plugininstaller)","//","=","`c.config(externalconfigname)`/`c.set(externalconfigname,","befor","builder.","c.set(externalconfigname,","careful,","certain","cfg","cfg)`","config","config.","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","conflict","const","current","delet","disabl","disable()","ensur","error","extern","externalconfignam","fielda.","fieldb.","fieldtype)","framework","func","func(c","get/sav","global","init()","instal","install(build","install/initi","interfac","name","name()","name.","need.","nil","nil)","nirvana","nirvana.","nirvana.configur","nirvana.registerconfiginstaller(&plugininstaller{})","packag","pleas","plugin","plugin.","plugininstal","plugins.","regist","registerconfiginstaller(ci","return","server","server.","servic","service.builder,","set","starting.","string","struct{}","stuff","terminating.","type","uninstal","uninstall(build","uniqu","us","won't","{","{...)","{...}","}","一个基本的插件框架如下:","一般情况下,插件应该通过插件","中添加插件配置。","包提供的方法进行注册:","在","插件实现了这个接口之后,即可通过","插件接口:","插件机制","的","进行注册。然后提供相应的","配置基本信息以外,还提供了插件机制。","除了使用"],"concepts/clients.html":["!=","\"clientset/svca\"","\"clientset/svcb\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","$","$gopath/src/","$gopath/src/clientset","$gopath/src/svca","$gopath/src/svcb","&clientset{}","(","(c","(interface,",")","*clientset)","*rest.config)","../clientset/svca","../clientset/svcb","//","10)",":=","=","a.","b.","c","c,","c.svca","c.svca,","c.svcb","c.svcb,","cd","cli","cli.svca().v1().listmessages(context.background(),","client","client.go","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","contain","creat","describ","err","error","error)","func","host:","import","init","interfac","log.fatal(err)","log.info(msgs)","main()","mkdir","msgs,","multipl","mustnewclientset","mustnewclientset(cfg","new","newclientset","newclientset(cfg","newclientset(cfg)","nil","nil,","nirvana","occurs.","output","packag","panic","panic(err)","rest","return","scheme:","set","set.","struct","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","touch","type","types.go","v1","v2","var","{","}","})","│","└──","├──","两个服务项目。","中创建","为了演示这个过程,我们逐步构建这个项目。","代码如下:","使用","创建","创建项目","即创建了","和","在","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","多客户端整合","整合客户端","此时","没有太大区别:","然后创建两个服务项目(仅用于演示):","生成","生成客户端","的使用方法和普通","的客户端:","的项目结构如下:","统一网关访问","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","项目,用于保存所有服务的客户端:","首先创建","默认情况下,我们会为每个服务生成如下结构的客户端:"],"plugins/logger.html":["//","`desc:\"debug","`desc:\"log","`desc:\"overrid","basic","bool","command","config","configur","contain","debug","enabled\"`","field","flag。","framework","github.com/caicloud/nirvana/plugins/logg","global","int32","level","level.","logger","logger\"`","logger.","logger。","logs\"`","mode.","modifi","nirvana","option","output","overrideglob","plugin","sens","server","struct","true,那么除了设置当前","type","{","}","为","以外,还会设置全局的","包的","包路径:","启用","就无效。如果","暴露","模式后,level","的","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","编写,只是为了通过","这个插件暴露三个选项:"],"plugins/reqlog.html":["/","bool)","configurer:","default()","disable()","doublelog(en","github.com/caicloud/nirvana/plugins/reqlog","id","key,默认为","log.logger)","logger","logger(l","nirvana.configur","request","requestid(en","requestidkey(key","sourceaddr(en","string)","x","上的中间件,用于打印所有路由匹配成功的请求的日志。","关闭插件","包路径:","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件并使用默认配置","插件","的","设置","设置请求","请求日志插件","请求日志插件会添加一个在"],"plugins/metrics.html":["/metric","api","configur","configurer:","disable()","github.com/caicloud/nirvana/plugins/metr","namespac","namespace(n","nirvana.configur","path","path(path","prometheu","prometheus,提供了一个","string)","修改。","关闭插件","包注册指标。采集端可以通过","包路径:","可以通过","启用插件后,可以直接向","插件","用于暴露服务端指标。","监控指标插件","监控指标插件基于","设置","路径","路径,默认值为","采集指标数据。"],"plugins/tracing.html":["/","//","addhook(hook","after(ctx","agenthostport","allow","befor","before(ctx","configurer:","context.context,","custom","customtracer(trac","defaulttracer(servicenam","disable()","exec","github.com/caicloud/nirvana/plugins/trac","hook","hook)","inform","interfac","nirvana.configur","opentrac","opentracing.span)","opentracing.tracer)","process","request","span","span.","string)","string,","trace","tracer","type","{","}","上添加一个中间件用于提取","使用自定义的","使用默认的","信息。","关闭插件","包路径:","接口实现了请求跟踪机制,会在","接口:","插件","设置请求","请求追踪插件","请求追踪插件基于"],"plugins/profiling.html":["/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","api,用于取得服务运行时信息。","configur","configurer:","descriptor:","disable()","github.com/caicloud/nirvana/plugins/profil","net/http/pprof","nirvana.configur","path","path(path","string)","一致的","修改。","关闭插件","前缀路径","包路径:","可以通过","性能分析插件","性能分析插件添加与","插件","设置路径前缀,默认值为","默认情况下,插件会添加四个"],"plugins/version.html":["/version","/version。","api","commit","configurer:","description(descript","disable()","github.com/caicloud/nirvana/plugins/profil","hash","hash(hash","name(nam","nirvana.configur","path(path","string)","version(vers","值","值。一般情况下可以设置为代码的","关闭插件","包路径:","插件","版本信息插件","版本信息插件提供一个","设置","设置服务","设置服务名称","设置服务版本号","设置服务的描述","路径默认为","路径,默认值为","返回服务的版本信息。api"],"plugins/healthcheck.html":["/healthz","/healthz。","api","checker","checker(check","configurer:","context.context)","disable()","error","func(ctx","github.com/caicloud/nirvana/plugins/healthcheck","healthcheck","healthchecker)","nil。如果服务异常,则返回相应的错误。","nirvana.configur","path(path","string)","type","健康检查插件","健康检查插件提供一个","关闭插件","包路径:","如果服务正常,则","应该返回","插件","插件提供了一个函数接口:","用于检查服务是否正常。","设置","路径,默认值为","返回服务当前是否健康。api","默认路径为"],"topics/start.html":["$","$gopath/src","1.10.x","1.9.x","account}/nirvana.git","api","cd","clone","cmd/nirvana","command","config","config.json","convert","definit","definition/method","dep","dep:https://github.com/golang/dep","error","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","fork","git","git@github.com:{your","github","github.com/caicloud/","githuh","go","golang","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","log","mkdir","nirvana","oper","p","plugin","pr","repo","server","servic","service/rout","test","util","validators,用于","vendor","vendor。","一般情况下,我们使用最新版本的","上","与","中。","中包含了两个组件功能实现了","中包含了许多实现了","中,不能在任何子目录下使用","之后,通过","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","以及插件化功能。","其中","准备工作","函数。请参考","到自己的账户下,然后下载源码到本地开发目录中:","功能,并提供了从","包之间的依赖关系:","包包含","包包含多个工具用于","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了框架","包帮助用户快速构建项目。","参数的类型转换和数据验证。","另外","只使用","和","在","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在完成修改并提交到自己的","大版本的兼容性。即使用","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","工作流程","帮助用户把实例方法转换为","开发工具介绍","开发的情况下,需要保持对","提交代码。","插件接口的插件。","方法包。","是","是基础包,分别负责日志基础接口和错误处理基础接口。","框架的","框架的设计核心思想是:隔离","框架设计概览","测试以外,还需要使用","生成,客户端代码生成,项目结构生成。","的主要命令,利用","的入口包。","的兼容性。","的形式向","的配置文件在根目录的","路由和处理的所有功能。","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行开发,但是需要保证两个","除了常规的"],"topics/log.html":["\"error\"","\"fatal\"","\"info\"","\"warn\"","(",")",".","...interface{})","//","1","1.","2","2.","3","3.","4","4.","5.","6.","=","[5,","api","api,并且允许用户接入其他日志系统。","append","argument","call","called.","can't","class","clone","clone(wrapp","const","correspond","current","custom","debug","document","error","error(...interface{})","error.","errorf","errorf(string,","errorln","errorln(...interface{})","exit","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","fmt.print;","fmt.printf;","fmt.println;","follow","four","frequent","glog","golang","handl","immediately.","implement","import","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","information.","int)","int32","interfac","level","level.","leveldebug","leveldebug)","levels.","log","log.","logger","logger.","logger,使用的是","logs,","logs.","mani","manner","math.maxint32","mean","method","missing.","more","neg","new","newlin","nil.","os.exit(1)","os.exit(1).","output","outsid","panic","posit","provid","recommend","recovered.","report","request","return","rules:","see","set","setdefaultlogger()","sever","severityerror","severityfat","severityinfo","severitywarn","silentlogg","site","situation.","stderr","stdlogger。可以通过","string","stripped.","strongli","type","us","usual","v","v(level)","valu","verbos","verboser,","verboser.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","whether","wrapper","wrapper.","write","{","}","之前,需要知道以下几件事情:","包","包提供了一组基础的日志","包有一个默认的","参考了","变更。","和一个使用了","在","在实现一个自定义的","对于不需要输出日志的场景,使用","方法。clone","方法用于在对","时候,使用","标准接口如下:","正确实现","的","的实例而不是","这套日志","进行包装的时候,获取正确层级的调用栈信息。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。"],"topics/errors.html":["\"${user}","(",")","...interface{})","//","11.2","11.3","11.4","11.5","2.3.3","2295,","2774,","3","3.1","3.2","4","4.2","4.4","4918,","5","5842,","6","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8.1","=","api","badgateway","badrequest","bool","build","build(reason","builder","builder,factori","check","code()","conflict","creat","current","deriv","derived(","error","error(format","error(v","error)","error。","error。其中","errros.","expectationfail","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fix","forbidden","format","format.","format,比如","found\")。","gatewaytimeout","gener","gone","http","httpversionnotsupport","immedi","insufficientstorag","int","interfac","interface{}","internalservererror","lengthrequir","lock","loopdetect","message()","methodnotallow","networkauthenticationrequir","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","nirvana","notaccept","notextend","notfound","notimpl","paymentrequir","preconditionfail","preconditionrequir","predefin","proxyauthrequir","reason","reason,","reason.","requestedrangenotsatisfi","requestentitytoolarg","requestheaderfieldstoolarg","requesttimeout","requesturitoolong","rfc","serviceunavail","string","string)","string,","teapot","toomanyrequest","type","unauthor","unavailableforlegalreason","unprocessableent","unsupportedmediatyp","upgraderequir","us","v","v.","var","variantalsonegoti","without","{","}","主要是以","之上,构建了","则用于判断一个错误是否是由当前的","则用于构建特定的","加上一些附加属性,用来表示返回的错误码等信息。","包","包中存在三个概念,分别是","包中):","包提供的","包的依赖,可以自行实现错误包,只要产出的错误符合","包类似于标准库的","包,但是提供了方法用于生成格式化的错误和错误判断。","可以构建带有","和","因此在","就足够了。但是为了让错误能够以","接口即可。","接口如下(这个接口并没有显式定义在","接口如下:","接口,用于创建具有一类特征的","方法用于直接创建出","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","状态码作为基础的:","生成。","用于传入参数输出一个真正的错误。","用于构建","的","的两个方法:","的形式向客户端返回,我们还需要给","的错误)。","目前","识别的错误,但是如果业务逻辑中如果不希望引入对","这个包方便了用户创建能够被","这样就能够非常方便的错误创建和错误判断了。","通常情况下,有","首先看"],"topics/definition.html":["!=","\"\"","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/some\",","\"accept\"","\"accept\".","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"content","\"converter\"}","\"create\"","\"data\"","\"delete\"","\"error\"","\"file\"","\"form\"","\"get\"","\"header\"","\"list\"","\"meta\"","\"multipart/form","\"patch\"","\"path\"","\"prefab\"","\"query\"","\"source\".","\"source,name\".","\"text/plain\"","\"update\"","\"validator\"}","(","(anytype,","(c","(interface{},",")","*converterforanobject)","*validatorforanobject)","//",":=","=","[]definit","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","`source:\"header,cont","`source:\"query,start\"`","accept","accepttypeal","actions.","altern","anytyp","anytype)","api","asynccr","asyncdelet","asyncpatch","asyncupd","auto","back","behavior.","bind","bodi","body.","brief","built","call","carri","cases,","certain","chain","chain)","chain.continue()","child","children","clearer","client","client.","code","code.","combin","concret","const","consum","consume.","consumes.","contain","content","content.","contenttyp","context.","context.context,","continu","continue(context.context)","converter:","converterforanobject","convertobjectv1toobjectv2(object.(*objectv1))","creat","create)。","current","custom","data","data\"","data\".","data.","default","defin","definit","definition.","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definitions.","delet","describ","descript","descriptor","descriptor'","descriptors.","destin","differ","element","empty,","equal","err","error","error)","error.","errorproduc","etc.","ex.","exampl","example.","example:","execut","exist","f","f(context.context,","field","field.","file","first","form","format","from.","func","func(context.context,","function","function.","gener","generator.","go.","handl","handler","handler.","header","header.","http","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","identifi","in()","indic","inherit","instanc","int","interfac","interface{}","interface{})","it'","key,","kind","kind()","last","line","list","locat","make","mani","mean","meta","method","method.","middlewar","middlewares.","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","modifi","more","name","name,","next","nil","nil,","nirvana","object","object,","object.","objv2,","occur","on","on,","one.","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operators:","out","out()","overrid","paramet","parameter.","parameters.","parent","parent'","pass","patch","path","path.","place","prefab","previou","produc","produce.","produces.","provid","queri","reader.","receiv","recommended.","reflect.typ","replac","request","request.","response.","result","result.","results.","retrun","return","return.","second","set","signature:","sourc","specially.","start","statu","stream","stream\"","string","string,","string.","struct","struct{}","sub","subsequ","succeess","success","summari","tag","tag.","target","time,","treat","type","type\"","type\"`","type.","unless","updat","url","urlencoded\"","us","usag","valid","validate(object.(*object));","validator:","validatorforanobject","valu","value.","values.","want","ways.","write","www","{","{return","}","中提供了","中,提供了","其中","其他与","其他与具体","分别对应","则针对单个的业务参数和返回值,可以对值进行验证和修改。","包","包包含了","包除了包含对","参数和返回值定义","可被","同等级别的字段","和","在","在上面的定义中,存在两个额外功能:","如果希望对","定义,用于描述","定义:","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","方法,这个方法是一个抽象方法,用于描述一种行为(比如","的","的参数与返回值。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的定义以外,还提供了一些函数,帮助快速构建","结构体包含了一个具体的","结构体包含具有如下含义的字段:","继承的字段","路径","路径同等级别的字段","进行扩展,需要遵守上面这些规则。"],"topics/method.html":["(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(c","*container)","...","//","=","api","contain","container.","container:","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","definit","definition.funct","definition/method","func","function","get(inst","golang","ifac","instanc","instance)","instance.","interface,","interface{}","interface{})","interface{},","mappings.","method","method)","method.","methods.","more","need","newcontainer()","on","put","put(inst","putinterfac","putinterface(ifac","return","specifi","string)","struct","type","us","var","want","{","}","一般情况下,用户会使用这个全局的容器。","之前使用。","包","包中,可以看到","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包还提供了一个全局的","可以在","和","在","容器如下:","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","时,使用","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","真正的实例,即","获取某个实例的方法,之后再在服务启动逻辑里","过程。也就是可以在声明","这个主要是利用了","这个实例方法容器分离了方法的"],"topics/converter.html":["\"converter\"","(anytype,","//","=","`converter`.","anytyp","anytype)","built","const","convert","converter.","creat","data","definition.oper","definition.operatorfunc(operatorkind,","describ","error)","error.","f(context.context,","f)","for(f","func","func.","gener","go.","interfac","interface{})","kind","kind.","mean","opeartor","oper","operatorkind","operators/convert","operator。","operator:","packag","paramet","recommended.","return","second","signature:","string","string,","struct","type","us","{","}","包","包提供了一个","实现,帮助用户快速构建名为","的","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为"],"topics/validator.html":["\"custom\"","\"struct\"","\"validator\"","\"var\"","(",")","//","=","[]definition.operator{newcustom(f,\"custom","`validator`.","allow","anoth","anytype)","automat","base","basic","bool","bool(tag","bool.","built","byte","byte(tag","call","categori","category()","categorycustom","categorystruct","categoryvar","const","context.context","context.context,","contextu","creat","current","custom","definition.oper","describ","descript","description\")}","description()","differ","distinguish","doc","done","error","exp:","expos","f","f.","fields,","func","func(ctx","gen.","gener","golang","gopkg.in/go","implementation.","indic","information.","int","int(tag","int*,","int16","int16(tag","int32","int32(tag","int64","int64(tag","int8","int8(tag","interfac","interface{})","interface{},","kind","kind.","mean","nest","newcustom","newcustom(f","object","opeartor","oper","operator.","operatorkind","operators/valid","operator:","otherwis","packag","pass","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","return","specifi","string","string(tag","string)","string,","struct","struct(inst","struct.","structs,","tag","tag()","tag.","type","type.","types.","types:","uint","uint(tag","uint*,","uint16","uint16(tag","uint32","uint32(tag","uint64","uint64(tag","uint8","uint8(tag","unless","us","user","valid","validation,","validator.","way","{","}","包","包提供了一系列的方法帮助用户快速生成用于校验参数的","基础类型,结构体类型和自定义类型。目前验证方法基于","目前支持三种类型的验证,分别对应"],"topics/router.html":["(executor,","*","*regexp.regexp",".*:","/","//","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/{regexp:[a",">","[]index","ab","api","call","can't","carri","chain","children","contain","context","context.","continu","continue(context.context)","definit","describ","error","error)","execut","execute(context.context)","execute.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exp","expression.","find","fix","form","full","fullmatch:.*","fullmatchregexpnod","func(context.context,","gener","handler","index","indic","inform","inspect","inspect(context.context)","inspector","inspector:","instanc","int","interfac","it'","key","match","match.","middlewar","middlewares.","name","next","node.","node:","nodes:","on,","optim","pass","path","path.","path:","pathnod","po","posit","prefix","regexp","regexp:[a","regexpnod","regexpnode.","regular","rest","return","router","routingchain","routingchain)","routingchain.continue()","segment.","select","servic","service/rout","someth","string","stringnod","struct","submatches.","target","the/rest/path","type","valid","valu","value.","want","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","}","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","下面用一个例子来说明这几个节点:","中间件接口如下:","之前。","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","剩余路径类型节点","剩余路径类型节点:","包","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包进行","包进行路由构建和匹配。","在上面的路径节点中,每个节点都可以绑定一个","如果能返回一个","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","完全匹配。","定义,然后由","实际上是调用的","对于中间件而言,处理完当前的任务之后只需要调用","将","执行完成之后,请求也处理完成了。","来生成一个能够处理当前的路由上下文的","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","路径匹配完成后,会调用匹配链的最后一个节点的","这个节点匹配剩余所有路径。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","通过"],"topics/service.html":["\"application/x","\"content","\"multipart/form","(","([]string,","(goon","(interface{},","(multipart.file,","(or","(reader","(service,","(string,",")","*definition.definition)","*http.request","*http.request)","...definition.descriptor)","...filter)","//","1.","100","2.","200","3.","300","=","[]consumer,","[]filter","[]producer,","[]string","[]string)","add","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","api","befor","bodi","body()","body.","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","bool","bool)","bool,","build","build()","builder","builder.","builder:","called.","case","check","code","code()","code.","common","const","consum","consume(r","consumer,converter,prefab","contain","container.","content.","contentlength","contentlength()","contenttyp","contenttype()","context","context.","context.context)","context.context,","contexthttpcontext","continue):","convert","creat","current","custom","data","data\".","data.","deal","defaultvalu","definit","definition.","definition.destin","definition.sourc","definition.typ","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definition。请求过滤器则是在","descid","describ","descriptor","destination()","destinationhandl","destinationhandlerdestinationhandl","element","err","error","error)","error.","everyth","execute.","executed.","executor","exists,","extend","false,","file","file(key","filter","filtered.","filters()","filters.","finish","form","form(key","func(ctx","func(d","func(resp","function","gener","generate(ctx","generator.","go","golang","handl","handle(ctx","handle.","handler","handler.","handlers.","header","header(key","headerwrit","headerwritable()","higher","highest","highprior","http","http.handler","http.handler,用来处理请求。","http.responsewrit","http.responsewriter,","http.responsewriter.","httpcontext","ignor","implement","inform","instanc","instance.","int","int,","interfac","interface,","interface{}","interface{})","interface{},","intern","io.readcloser,","io.reader,","io.writer,","it'","it.","itself.","key.","length","lifecycle.","log.logg","log.logger)","logger","logger()","look","lowprior","make","make(ctx","map[string][]definition.definit","map[string][]definition.middlewar","marshal","match","matching.","mean","mediumprior","messag","message()","meta","method","middlewar","middlewares()","middlewares.","mime","modifi","modifier()","modifier.","name","name()","name.","next","nil","nil.","nirvana","noth","nothing)","object","object.","occurs,","ok","ok,","on","once.","panic.","parameter.","parametergener","parametergeneratorparametergener","path","path(key","prefab","prior","prioriti","priority()","produc","produce(w","producerconsum","queri","query(key","query,head","r","read","reader","recal","reflect.typ","reflect.type)","req","request","request()","request,","request.","requests.","respons","responsewrit","responsewriter()","responsewriterresponsewrit","result","return","routepath()","router","router.","run","run.","server.","servic","service.","service.servehttp()","set","setlogg","setlogger(logg","setmodifi","setmodifier(m","someth","sourc","source()","specif","specifi","statu","statuscod","statuscode()","string","string)","string,","string.","subsequ","success","take","target","three","true,","type","type\"","type()","type.","unmarsh","urlencoded\"","us","user","v","v.","valid","valid.","validate(nam","validate(target","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","vc","w.","want","whether","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","{","|","}","↑","↓","中。","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","修改器用于在生成路由之前修改","修改器,请求过滤器,api","其中","则是将业务函数的返回值转换并写入到响应的","包","包实现了","包的入口是","包里提供了一个","和","基础类型的转换器这些转换器一般是用于将请求里的","处理框架:","实现了","实际上是一个","对应","将返回值转换为字节写入响应中。在","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","描述符。构建完成的","提供了多个方法用于设置生成服务需要的日志,definit","是业务函数返回值处理器,通过调用","是对","是真正的参数生成器,通过调用","服务。因此","来提供","构建","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于生成业务函数的参数的","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的基础类型,供业务函数使用。//","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型的","转换为路由需要的数据结构,涉及到以下内容:","返回出去,供业务函数使用。//","还会将","针对请求的"],"topics/nirvana.html":["(builder","(c","*config","*config)","...","...configurer)","//","activ","alway","anoth","api","befor","bool","builder","builder()","builder.","called.","check","clean","cleaner","cleaner.","clients.","complet","config","config(nam","config.","configinstal","configur","configure(configur","configurers.","config:","connections.","contain","context.context)","creat","creation,","current","delet","describ","directli","don't","down","err","error","error)","error,","except","extern","form","func","func()","func(c","get","gracefulli","handl","hold","http","instal","install(build","interfac","interface{}","interface{})","interrupt","ip","ip()","ip.","it.","listen","lock","locked()","locked.","log.logg","logger","logger()","logger.","method","modifi","name","name()","name.","new","newserv","newserver(c","nil","nirvana","occur","occurs.","one.","panic","plugins.","port","port()","port.","request","requests.","resourc","return","router","same","serv","serve()","server","server.","servic","service.builder,","services.","set","set(nam","shut","shutdown","shutdown(ctx","shutdown,","special","start","starting.","string","string)","string,","struct","stuff","terminating.","type","uint16","uninstal","uninstall(build","until","us","via","without","won't","{","}","中可以看到","中,存在一些","也在当前包中。如果需要对配置进行扩展,增强","创建","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","包","包依赖了","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","和","和插件系统。这个包放置在根目录中是因为这个包是","和第三方功能的扩展)。","在","接口如下:","提供的用于生成","方法安装插件。","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","的顶级包,而且其依赖的所有包只来自","级别的配置,这些配置是针对当前服务的。而对应的","自身和标准库(config","需要使用"],"topics/config.html":["'myconfig.name.firstname'.","'nirvana.ip'","(e.g.","(from","(in","(pem","(with","*cobra.command","*int,","*nirvana.config)","*string).","...customoption)","...definition.descriptor)","...plugin)","./","./config/","//","/etc/nirvana/",">","[]string","[]string.","`","`desc:\"desc","`desc:\"nirvana","`desc:\"tl","`desc`","`desc`).","`key`","`pointer`","add","add(point","addopt","addoption(prefix","ag","age\"`","associ","basic","behavior","bool","bool.","case","cert","certif","char","check","collect","comamnd","command","command(cfg","command.","config","config.","configur","configure(cfg","contain","convert","current","custom","customopt","data","default","default,","desc","describ","descript","divid","doc","don't","empti","enabl","enableplugin","enableplugin(plugin","env","env,","error","exampl","example):","example.ag","example.firstnam","example:","example_ag","example_first_nam","execut","execute(descriptor","executewithconfig","executewithconfig(cfg","executing.","field","field,","field.","file)","file,","fill","first","firstnam","flag","flag,","flags,","flags/env/config","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","follow","format)","func","get(key","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","github.com/spf13/cobra","github.com/spf13/vip","given","golang","help","help`,","here","hook","hook()","hook.","https\"`","https.","insensit","instead","int","int.","int16","int32","int32.","int64","int64.","int8","interfac","interface.","interface{}","interface{})","interface{},","ip","ip\"`","is:","isset","isset(key","it'","key","key.","key/valu","listen","listen.","locations.","method","methods.","name","name\"`","name()","name.","namespaces.","nirvana","nirvana.","nirvana.json","nirvana.toml","nirvana.yaml","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","non","obtain","on","option","option,","options.","option,并且实现","order:","overrid","override,","place","plugin","plugins.","pointer","port","port\"`","prefix","prioriti","privat","recommended.","regiser.","retriev","return","run","see","server","server.","set","set(key","set.","sethook","sethook(hook","short","shortflag","singl","specif","store,","store.","string","string)","string,","string.","struct","struct.","tag","time.dur","time.duration.","two","type","uint","uint.","uint16","uint32","uint32.","uint64","uint64.","uint8","up","us","use.","valu","via","viper","want","{","{executablefilepath}/","{executablefilepath}/config/","}","中传递","中的公开字段根据一定的规则(规则参考上面的注释)从","以外,config","包","包中对","包会从以下文件列表中读取配置文件:","包利用","包提供了一个","包的插件能力:","和","和相应的功能。","和配置读取,为","如果读取到配置文件,那么除了使用","实现了","扩展了","接口。用户在","接口如下:","接收配置以外,还可以通过一些帮助方法获取配置:","服务启动提供了命令行支持。","服务配置的特殊性,config","来启用插件,并且将插件","来表达这些配置:","注:如果在","由于","目录:","要求每个插件提供一个","进行了扩展,涉及到字段的改变,也需要在这个包中修改","配置文件名:","除了插件"],"topics/rest.html":["\"http\"","\"https\".","(*client,","(*http.response,","(c","(r","*client)","*config)","*http.request)","*map[string]string)","*request","*request)","...","...interface{})","//","api","bodi","body(contenttyp","builder","check","client","client.","client。而","code","config","config.","context.context)","creat","data","data(valu","definit","describ","do(ctx","do(req","empty,","error","error)","execut","executor","file","file(nam","form","form(nam","func","header","header(nam","host","host:port","http","http.defaultcli","implement","int,","interfac","interface{})","meta","meta(valu","method","newclient","newclient(cfg","nirvana","parameter.","path","path(nam","path.","path,query,header,form,file,bodi","pattern","pointer.","prefab","queri","query(nam","request","request(method","request.","requestexecutor","requests.","request。config","respons","rest","result.","right.","scheme","scheme.","server.","set","specif","statu","string","string)","string,","struct","type","url","us","used.","valu","{","}","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","会被由命令","保存了一个请求的数据,用","则由","创建,用来表示每一个","包","包提供了一个简单的","和","在这个包中,主要包含三个概念:config,cli","方法返回,因此这两种类型没有对应的方法。","是","是由服务端生成而不由客户端提交,error","服务。","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","注:这个","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","用于真正发起请求,并完成","用于访问","由","的填充。","的方法与","的配置,用于创建","的除了","请求。"],"topics/utils.html":["\"\"","\"alias\"","\"descriptors\"","\"modifiers\"","\"origin\"","(","(*api.definitions,","(*definitions,","(*types.package,","(a","(ac","(b","(exported)","(includ","(types.object,","(unexported)",")","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*comment","*contain","*container)","+nirvana:api=option:\"value\"。","...","...definition.descriptor)","...service.definitionmodifier)","...string)","//","0.","=","[]*ast.commentgroup","[]byte","[]exampl","[]funcfield","[]int","[]paramet","[]result","[]string","[]string{commentsoptiondescriptors,","[]structfield","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","abov","add","adddescriptor","adddescriptor(descriptor","addmodifi","addmodifier(modifi","alias.","analyz","analyzeranalyz","ananlyzer.","anonym","api","apibuild","apis.","array,","befor","between","bool","bool)","brief","build","build()","builder","builder.","builder:","bytes.","call","case","cases,","client","code","code.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","complet","conflict","const","consum","consume.","consumes.","contain","container.","containercontain","content","creat","current","data","data.","declar","def.definition.","default","definit","definition.","definition.destin","definition.method","definition.sourc","definitions.","definition此处的","depend","describ","descript","descriptions.","descriptor","descriptor'","descriptors.","descriptor。然后动态生成一个","destin","differ","directori","elem","element","embed","empti","empty,","encod","equal","error","error)","error.","errorproduc","exampl","example.","extract","field","field.","findpackag","findpackages(target","from.","func","funcfield","function","function.","gener","generate()","generators/golang","generators/swagg","generators/util","github.com/go","go","golang","handler","handler.","hold","http","httpcode","httpmethod","identifi","immedi","import","import(path","index","indic","inform","input","instanc","int","invalid","itself).","key","keyword.","kind","kind.","line","list","lower","main.go","mani","map","map,","map.","map[string][]definit","map[string][]str","map[typename]*typ","mean","method","method.","modifi","modifiers.","name","name.","names.","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newcontain","newcontainer(root","nirvana","nirvana.yaml。","object","objectof","objectof(pkg,","offset","on.","openapi","openapi/spec","option","options.","optionsregexp","origin","out","output","overrid","packag","package.","packagecom","packagecomments(path","packages(par","packages.","paramet","parameter.","parameters.","parent","pars","parsecom","parsecomments(com","path","pkgpath","pointer.","pos.","present","printer","produc","produce.","produces.","project","qualifi","reflect.kind","reflect.structtag","regexp.mustcompile(`^[","relat","request.","rest","result","result.","results.","retrun","return","same","sequenc","short","show","slice,","sourc","specifi","stdout","string","string)","string,","struct","struct,","struct.","structfield","succeess","success","summari","swagger","tag","tag.","target","target.","termin","token.pos)","type","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","type为了能让","uintptr","under","uniqu","upper","us","util","valu","value.","values.","var","vendor","version","ways.","whether","within","{","}","中打印表格的功能。","信息的提取。","包","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中,提供了如下功能:","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包则是利用了","包和","包实际上都是利用了","包提供的数据结构生成","包来说就简单很多了,这个包里包含一个","包的","包相对","包读取源码并生成","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于读取项目源码,并生成与","去读取指定路径的源码,然后从中找到标记了","取得返回值,反序列化成","可以读取源码,获取结构对象和注释信息。","后通过","和","在","大部分字段与","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","客户端。","对应","将","执行","接口。swagger","数据。","文件","文档。","文档和客户端。","有关的所有数据结构,产出的结构可用于生成文档和客户端。","来生成","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","用于分析源码的","用于表示代码注释的","的","的定义。","的调用者。这样就完成了对一个项目的","的返回结果,构建出相应的客户端和文档。golang","相关的所有定义和类型信息。api","相关类型:","系列包","系列包包含:","结构,然后再返回给","能转换为可读的数据结构,构建了","读取源码并进行分析,产出","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","选项的注释。两个选项的值对应两个函数,分别返回","除了","集合上述所有功能的","首先会利用"],"topics/command.html":["!=","\"\",","\"boilerplate\",","\"build","\"creat","\"debian:jessie\",","\"docker","\"first","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"imag","\"init","\"nirvana","\"nirvana\",","\"path","\"registries\",","\"runtim","\"v0.1.0\",","\"version\",","&cobra.command{","&initoptions{}","(","(o",")","*cobra.command","*cobra.command)","*cobra.command,","*initoptions)","*pflag.flagset)","//","/path/to/project\",",":=","=","[]string","[]string)","[]string{},","api","api.register(root)","api,用于生成","arg","args);","base","basic","boilerpl","boilerplate\")","build","buildimag","client.register(root)","client,用于生成","cmd","cmd/nirvana","commands.","err","error","flag","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","func","func(cmd","imag","image\",","imageprefix","imagesuffix","import","init","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","instal","install(flag","log.fatalln(err)","long:","main()","main.go","newinitcommand","newinitcommand()","nil","nirvana","option","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","packag","prefix\")","prefix\",","project","project\")","project.register(root)","regist","register(root","registri","registries\")","return","root","root.addcommand(newinitcommand())","root.execute();","run","run(cmd","run:","runtimeimag","short:","string","struct","structure\",","suffix\")","suffix\",","toolchains\",","type","use:","valid","validate(cmd","var","version","{","}","},","一个创建命令的私有函数","一个表示当前命令的所有参数的","中","中,目前包括三个命令:","到命令中","命令","命令为例,说明单个命令的基本结构:","命令对应的包在","基本结构如下:","如果需要新增命令扩展","实现的","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","接下来以","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法用于安装","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","根命令中,比如:","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","然后在","的功能,需要按照上述结构进行开发。","的文件用于把当前的命令加入到","这个包并进行命令注册:"],"topics/routes.html":["\"/api\",","\"hello","\"here","(against","(response,","(string,","(w.r.t","//","[]definition.definition{","[]definition.parameter{},","[]definition.result{","[]string{\"text/plain\"},","add","anyth","api","approach","basic","case","check","context.context)","core","cover","data","declar","defin","definit","definition.data,","definition.descriptor","definition.descriptor{","definition.error,","definition.get,","definitions:","description\",","description:","doc","documentations,","dri","easi","error","error)","etc.","exampl","follow","formats)","framework!","func","func(ctx","function","function:","functions:","gener","goe","handler(request","happen","i.e.","look","lot","method:","more","need","nil","nirvana","nirvana,","openapi","paramet","parameters:","path:","produces:","request)","results:","return","rout","rule,","signatures)","specif","struct","structur","stuff","such","test","this:","todo:","tri","type:","typic","use,","we'll","world!\",","wrong","you'll","you:","{","}","},"],"topics/cli.html":["/","addit","adopt","alway","api","applic","application'","application.","approach","baseline,","boost","build","case,","class","cli","cli,","cobra","command","consist","convent","dedic","default","detail","didn't","differ","do.","entranc","experience.","expos","first","follow","framework","functionalities.","good","instead","interfac","line","make","micro","more","need","nirvana,","option","peopl","philosophi","practic","put","run","scratch","servic","small","specif","still","switch","system","therefor","todo:","unambigu","unix","us","veri","way","well.","you'll"],"topics/validation.html":["\"correspond","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"msg\",","$","''","'gt'","(checkout","./examples/get","/echo","0","0202","1","10","11:18:50.235+08",":)",":8080","[*/*]","[]definition.operator{validator.string(\"gt=10\")},","[]definition.parameter{","[text/plain]","abov","ad","add","advanc","allow","anoth","below","between","builder.go:163","builder.go:178","charact","characters,","code,","concept","consumes:","convert","convertor,","curl","custom","defin","definition.query,","definitions:","description:","descriptor:","differ","easili","echo","echo.go:67","enough","error:field","exampl","facts:","fail","framework","full","go","guid","hood,","info","input","input.","integr","key:","list","listen","longer","messag","method:","middlewares:","more","name:","new","nirvana","non","now","on","oper","operators.","operators:","package,","parameter\",","parameters:","path:","playground/validator.v9","pre","prevent","produces:","repli","request;","run","second","see","sens","server","sever","simpl","smoothli","source:","spam","started/validator/echo.go","such","support","tag","tags.","teach","terminal:","test","testtesttest","tire","two","under","us","usage.","user","valid","validation)","validation,","validation.","validator.","veri","verifi","version","want","works!","works:","{","|","},"],"topics/openapi.html":["!=","\"alice\",","\"apach","\"content","\"echo","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"message\":","\"nirvana\",","\"thi","\"v1.0.0\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","'{\"name\":","+caicloud:openapi=tru","./examples/get","//","/tmp/swagger.json","2.0\",",":=",">","\\","`json:\"message\"","`json:\"name\"","api","api.getopenapidefinitions,","application/json\"","build","builder.buildopenapispec(&echo,","built","code,","come","command,","complic","contact:","creat","curl","d","decid","defin","definitions:","description:","docs,","docs.","document","documentation.","easi","echo","encod","encoder.encode(swagger);","endpoint","enpoint.","err","exampl","example,","file.","finally,","first","follow","from.","full","gen","gener","getdefinitions:","github.com/caicloud/nirvana/examples/get","go","h","http://localhost:8080/echo","https://editor.swagger.io/,","i.e.","info:","infoprops:","it'","json.newencoder(os.stdout)","license,","license:","make","messag","message,","myself\"}'","name","name:","need","new","next","nil","nirvana","now","open","openapi","openapi\",","openapi.","p","packag","package:","panic(err)","post","provid","put","run","see","sent.","server","server\",","servic","spec.infoprops{","specification:","started/openapi/echo.go","started/openapi/pkg/api","step","string","struct","support","swagger,","swagger.json","title:","type","type:","upgrad","url:","user,","validate:\"gt=10\"`","validate:\"required\"`","version","version:","view","we'll","x","you'v","{","}","})","},"],"topics/metrics.html":["\"nirvana_request_latencies\"","#","$","'content","'http://localhost:8080/echo?msg=testtesttest'","(and","(apachebench)",")","./examples/get","/echo","/metric","0","1","100)","1000","1000,","2>&1","48533","53","8080).","89","90m.","98",":=","[0,","ab","actual","ad","add","alway","anoth","api","application/json'","around","author.","between","box","broken","checkout","client,","client.","code,","code.","complex","concept","config","config.","configur","configuration,","configuration:","configure(","contenttyp","counter","curl","default","depend","diagnos","disabled.","distribut","done","done,","each","enabl","endpoint.","exampl","example,","expos","format.","full","function","go","grep","guid","h","help","histogram","http","http://localhost:8080/metr","implement","individu","inform","instal","instrumentation.","it'","latenc","latencies.","let'","load;","mani","metric","metrics,","metrics.","metrics.path(\"/metrics\"),","microsecond","middlewares.","more","n","nirvana","nirvana.newdefaultconfig(\"\",","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","now","on","onc","others).","out","p90","plugin","plugin,","plugin.","prometheu","random","regist","request","resourc","resource,","resource.","respons","run","run:","see","seen","server","server,","servic","service!","service;","show","simpli","simul","sleep","start","started/metrics/echo.go","starts.","static","summari","support","tell","terminal,","therefore,","time","total.","type","type:","understand","us","user","verb","verb,","via","we'll","we'v","wealth","|"]},"length":45},"tokenStore":{"root":{"0":{"2":{"0":{"2":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}},"7":{"0":{"2":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292}}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.017361111111111112}},";":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"1":{"0":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.004433934377771209},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.04513888888888889}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"0":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}},":":{"1":{"8":{"docs":{},":":{"5":{"0":{"docs":{},".":{"2":{"3":{"5":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"6":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},".":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"5":{"docs":{},":":{"4":{"7":{"docs":{},":":{"5":{"2":{"docs":{},".":{"0":{"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"4":{"9":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"0":{"docs":{},":":{"5":{"4":{"docs":{},".":{"1":{"5":{"6":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"5":{"docs":{},".":{"6":{"0":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"6":{"docs":{},":":{"3":{"4":{"docs":{},":":{"3":{"8":{"docs":{},".":{"6":{"6":{"3":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.005911912503694945},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.034722222222222224}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"把":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},".":{"1":{"0":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{}},"9":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"2":{"0":{"0":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},"1":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0002955956251847473}}},"2":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"./":{"ref":"./","tf":0.0011823825007389892}}},"4":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"2":{"9":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"6":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"7":{"7":{"4":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"8":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"3":{"docs":{},".":{"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"3":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},">":{"docs":{},"&":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}}}},"3":{"0":{"0":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0014779781259237363}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"4":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"4":{"0":{"4":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"5":{"3":{"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}},"docs":{}},"docs":{}},"9":{"1":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"5":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"5":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"5":{"5":{"4":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"docs":{}},"docs":{}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"4":{"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"6":{"5":{"8":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"7":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"5":{"docs":{},".":{"1":{"0":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"7":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"8":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"9":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"6":{"docs":{},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"7":{"1":{"6":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"2":{"3":{"1":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.04849884526558892}}}},"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}},"docs":{}},"docs":{}},"3":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"2":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"8":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"8":{"0":{"8":{"0":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},")":{"docs":{},".":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"9":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"9":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"8":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"9":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"]":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.014484185634052616},"guides/project.html":{"ref":"guides/project.html","tf":0.035897435897435895},"guides/api.html":{"ref":"guides/api.html","tf":10.038535645472061},"guides/doc.html":{"ref":"guides/doc.html","tf":3.442708333333333},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/version.html":{"ref":"plugins/version.html","tf":0.05},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555},"topics/start.html":{"ref":"topics/start.html","tf":0.046875},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.033444816053511704},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.027472527472527},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},":":{"1":{"7":{"9":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"8":{"7":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"9":{"5":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"服":{"docs":{},"务":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"接":{"docs":{},"入":{"docs":{},"其":{"docs":{},"他":{"docs":{},"日":{"docs":{},"志":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"m":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"'":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},"'":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"e":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.026234567901234566}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"b":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"o":{"docs":{},"v":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}},"d":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"v":{"docs":{},"i":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"@":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{},"{":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},",":{"docs":{},"两":{"docs":{},"者":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":5.08235294117647},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}},":":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.009163464380727165},"guides/project.html":{"ref":"guides/project.html","tf":0.03076923076923077},"guides/api.html":{"ref":"guides/api.html","tf":0.025048169556840076},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.0380952380952381},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0392156862745098},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.03271028037383177},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0859375},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":10.02572347266881},"topics/config.html":{"ref":"topics/config.html","tf":0.021604938271604937},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.023255813953488372},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.16666666666666666},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.06896551724137931},"plugins/version.html":{"ref":"plugins/version.html","tf":0.15},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.08333333333333333},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"{":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"2":{"docs":{},".":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"2":{"0":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"服":{"docs":{},"务":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"./":{"ref":"./","tf":0.00325155187703222},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"y":{"docs":{},"@":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702}}},"s":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"w":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"e":{"docs":{},"w":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"4":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"2":{"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"3":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"5":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"与":{"docs":{},"其":{"docs":{},"他":{"docs":{},"普":{"docs":{},"通":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"此":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"和":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"都":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"侵":{"docs":{},"入":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"作":{"docs":{},"出":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"应":{"docs":{},"当":{"docs":{},"以":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"包":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"增":{"docs":{},"强":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"设":{"docs":{},"计":{"docs":{},"上":{"docs":{},"与":{"docs":{},"现":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"心":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"过":{"docs":{},"程":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"层":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"层":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"含":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"发":{"docs":{},"布":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"修":{"docs":{},"改":{"docs":{},"并":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"场":{"docs":{},"景":{"docs":{},"中":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"除":{"docs":{},"了":{"docs":{},"正":{"docs":{},"常":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"各":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"到":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},",":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"没":{"docs":{},"有":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"整":{"docs":{},"个":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"源":{"docs":{},"头":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"公":{"docs":{},"共":{"docs":{},"的":{"docs":{},"网":{"docs":{},"关":{"docs":{},"进":{"docs":{},"行":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"对":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"整":{"docs":{},"合":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"涵":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"过":{"docs":{},"程":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"导":{"docs":{},"致":{"docs":{},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"引":{"docs":{},"用":{"docs":{},"各":{"docs":{},"种":{"docs":{},"各":{"docs":{},"样":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"综":{"docs":{},"合":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{},"该":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"每":{"docs":{},"个":{"docs":{},"包":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"主":{"docs":{},"要":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"额":{"docs":{},"外":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"这":{"docs":{},"些":{"docs":{},"组":{"docs":{},"件":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"计":{"docs":{},"理":{"docs":{},"念":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"会":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"通":{"docs":{},"常":{"docs":{},"足":{"docs":{},"够":{"docs":{},"使":{"docs":{},"用":{"docs":{},"者":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"间":{"docs":{},"也":{"docs":{},"会":{"docs":{},"存":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"速":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"件":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"中":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"是":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"一":{"docs":{},"个":{"docs":{},"着":{"docs":{},"重":{"docs":{},"于":{"docs":{},"提":{"docs":{},"高":{"docs":{},"开":{"docs":{},"发":{"docs":{},"效":{"docs":{},"率":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}},"短":{"docs":{},"语":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"指":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"验":{"docs":{},"证":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"否":{"docs":{},"由":{"docs":{},"这":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"包":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"负":{"docs":{},"责":{"docs":{},"日":{"docs":{},"志":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"处":{"docs":{},"理":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}},"由":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"而":{"docs":{},"不":{"docs":{},"由":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"让":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{},"框":{"docs":{},"架":{"docs":{},"隔":{"docs":{},"离":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"处":{"docs":{},"于":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"设":{"docs":{},"计":{"docs":{},"核":{"docs":{},"心":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},":":{"docs":{},"隔":{"docs":{},"离":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"概":{"docs":{},"览":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"概":{"docs":{},"览":{"docs":{"./":{"ref":"./","tf":10}}},"念":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"各":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"也":{"docs":{},"是":{"docs":{},"依":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"和":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"该":{"docs":{},"请":{"docs":{},"求":{"docs":{},"还":{"docs":{},"是":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"数":{"docs":{},"据":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"包":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"忽":{"docs":{},"略":{"docs":{},"所":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"通":{"docs":{},"常":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"为":{"docs":{},"了":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"来":{"docs":{},"共":{"docs":{},"同":{"docs":{},"标":{"docs":{},"识":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"框":{"docs":{},"架":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{},"。":{"docs":{},"下":{"docs":{},"表":{"docs":{},"中":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"用":{"docs":{},"途":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"这":{"docs":{},"个":{"docs":{},"短":{"docs":{},"语":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}},"户":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"会":{"docs":{},"递":{"docs":{},"归":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"以":{"docs":{},"寻":{"docs":{},"找":{"docs":{},"带":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},",":{"docs":{},"与":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"字":{"docs":{},"段":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"调":{"docs":{},"换":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"工":{"docs":{},"具":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"注":{"docs":{},"册":{"docs":{},"方":{"docs":{},"法":{"docs":{},"即":{"docs":{},"可":{"docs":{},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"与":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"式":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"最":{"docs":{},"小":{"docs":{},"值":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"路":{"docs":{},"径":{"docs":{},"上":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"数":{"docs":{},"据":{"docs":{},"来":{"docs":{},"源":{"docs":{},"都":{"docs":{},"是":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"添":{"docs":{},"加":{"docs":{},"上":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"都":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"满":{"docs":{},"足":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"表":{"docs":{},"达":{"docs":{},"性":{"docs":{},"很":{"docs":{},"差":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"全":{"docs":{},"局":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"性":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"作":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"错":{"docs":{},"误":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"动":{"docs":{},"态":{"docs":{},"函":{"docs":{},"数":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"真":{"docs":{},"正":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"里":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"方":{"docs":{},"便":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"顶":{"docs":{},"级":{"docs":{},"包":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"其":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"包":{"docs":{},"只":{"docs":{},"来":{"docs":{},"自":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}},"填":{"docs":{},"充":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"除":{"docs":{},"了":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"述":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"把":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"docs":{}}},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0005911912503694946}}}},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"docs":{}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"n":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"\"":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"s":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"r":{"docs":{},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"h":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"i":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"#":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.12307692307692308},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.020833333333333332}}},"$":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.028205128205128206},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/start.html":{"ref":"topics/start.html","tf":0.03125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"g":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"/":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"{":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},".":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"1":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"docs":{}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.0380952380952381},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"*":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"/":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"/":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},":":{"docs":{},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"docs":{}}}}}}},"/":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.05009633911368015},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.09056603773584905},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.05952380952380952},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.047619047619047616},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.04938271604938271},"concepts/context.html":{"ref":"concepts/context.html","tf":0.09289617486338798},"concepts/source.html":{"ref":"concepts/source.html","tf":0.058823529411764705},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.09326424870466321},"concepts/error.html":{"ref":"concepts/error.html","tf":0.03139013452914798},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.0794392523364486},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.024464831804281346},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.04838709677419355},"topics/log.html":{"ref":"topics/log.html","tf":0.11611374407582939},"topics/errors.html":{"ref":"topics/errors.html","tf":0.10392609699769054},"topics/definition.html":{"ref":"topics/definition.html","tf":0.12545126353790614},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.10457516339869281},"topics/router.html":{"ref":"topics/router.html","tf":0.07508532423208192},"topics/service.html":{"ref":"topics/service.html","tf":0.08742514970059881},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.08681672025723473},"topics/config.html":{"ref":"topics/config.html","tf":0.10802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.07272727272727272},"topics/utils.html":{"ref":"topics/utils.html","tf":0.09810479375696766},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.02601241501625776},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"z":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"重":{"docs":{},"定":{"docs":{},"向":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"就":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"2":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"/":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}},"docs":{}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.10344827586206896},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"[":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}},"=":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422},"topics/definition.html":{"ref":"topics/definition.html","tf":0.026173285198555957},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0026603606266627253}},"=":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.018475750577367205},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"(":{"docs":{},"&":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},":":{"1":{"6":{"3":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"7":{"8":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"s":{"docs":{},"n":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}}},"y":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"l":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.03278688524590164},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"s":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"i":{"docs":{},"e":{"docs":{},"f":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"d":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/start.html":{"ref":"topics/start.html","tf":0.015625}}},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/command.html":{"ref":"topics/command.html","tf":10.004201680672269}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0023647650014779783}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05963302752293578},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},")":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":10.010928961748634},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}}},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"u":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"2":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},")":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.384009009009009},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.049019607843137254},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.06542056074766354},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":10.01388888888889},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0035471475022169673},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"a":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.14705882352941177},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01929260450160772},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.004138338752586462},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"b":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},":":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}},"d":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0026603606266627253}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"s":{"docs":{},".":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"i":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},"}":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}}},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"注":{"docs":{},"释":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"要":{"docs":{},"对":{"docs":{},"注":{"docs":{},"释":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"注":{"docs":{},"释":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"a":{"docs":{},"m":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.042483660130718956},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}}}}}}}}}}}}},"v":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":10.04054054054054}},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.027707808564231738},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168}},":":{"1":{"0":{"6":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}},"7":{"3":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"8":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"g":{"docs":{},"o":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"而":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.02287581699346405},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.037037037037037035},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0011823825007389892}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"./":{"ref":"./","tf":0.0005911912503694946}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"f":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"g":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},")":{"docs":{},"`":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.015414258188824663},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.12380952380952381},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/definition.html":{"ref":"topics/definition.html","tf":10.016245487364621},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"2":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"docs":{}},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"{":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"开":{"docs":{},"发":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"会":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"则":{"docs":{},"是":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/method.html":{"ref":"topics/method.html","tf":10}}}}}}}}},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.00325155187703222},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"=":{"docs":{},"{":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"(":{"docs":{},")":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"./":{"ref":"./","tf":0.00650310375406444},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0073898906296186815}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"然":{"docs":{},"后":{"docs":{},"动":{"docs":{},"态":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}},":":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.0029559562518474726}}}}},"i":{"docs":{},"d":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.010362694300518},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"a":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"o":{"docs":{},"c":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"s":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"n":{"docs":{},"e":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"'":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0029559562518474726},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"docs":{}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"a":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"b":{"docs":{},"e":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"r":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02702702702702703},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.0038427431274017146},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}},"o":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.07623318385650224},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":10.057736720554272},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.007685486254803429},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.013207547169811321},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"s":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"比":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"多":{"docs":{},"出":{"docs":{},"更":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05045871559633028},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.004729530002955957},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}},"o":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},"u":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},",":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"则":{"docs":{},"认":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"。":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"t":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"s":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.005025125628140704},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{},":":{"6":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"2":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}}}}},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":10.119047619047619},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0005911912503694946}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/utils.html":{"ref":"topics/utils.html","tf":0.020066889632107024},"./":{"ref":"./","tf":0.0011823825007389892}},"a":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.0002955956251847473}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"x":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0017735737511084836},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}}}}}},"o":{"docs":{},"m":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"k":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"u":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.020151133501259445},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.052830188679245285},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.037383177570093455},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0375},"topics/validator.html":{"ref":"topics/validator.html","tf":0.049019607843137254},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.02572347266881029},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.04},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"d":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"l":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},":":{"docs":{},".":{"docs":{},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"*":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.02771362586605081},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946}}},"。":{"docs":{},"也":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"类":{"docs":{},"表":{"docs":{},"示":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}},"s":{"docs":{},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"通":{"docs":{},"过":{"docs":{},"外":{"docs":{},"部":{"docs":{},"选":{"docs":{},"项":{"docs":{},"来":{"docs":{},"改":{"docs":{},"变":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"(":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{},"*":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},"f":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}},"l":{"docs":{},"n":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}}}}}}}}}}}}},")":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"(":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.010256410256410256},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.02185792349726776},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01818181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"得":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"1":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"u":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"2":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"2":{"0":{"4":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"(":{"2":{"0":{"0":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"请":{"docs":{},"求":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}},"。":{"docs":{},"如":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"您":{"docs":{},"明":{"docs":{},"确":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"l":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"`":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0017735737511084836}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.025906735751295335},"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.0880829015544045},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"这":{"docs":{},"些":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"同":{"docs":{},"等":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"闭":{"docs":{},"包":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"必":{"docs":{},"要":{"docs":{},"文":{"docs":{},"件":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{}},"3":{"2":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.01437125748502994},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{"./":{"ref":"./","tf":10}}}}}}}}},"f":{"docs":{},"o":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0026603606266627253},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"r":{"docs":{},"m":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"|":{"docs":{},"l":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"i":{"docs":{},"p":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"k":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"g":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":10.045023696682465},"./":{"ref":"./","tf":0.0014779781259237363}},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.023696682464454975}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"(":{"4":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"docs":{}}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.018957345971563982},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"l":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"输":{"docs":{},"出":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"k":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"w":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"a":{"docs":{},"d":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"k":{"docs":{},"e":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}},"e":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"会":{"docs":{},"写":{"docs":{},"入":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"]":{"docs":{},"*":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"h":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"3":{"2":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"docs":{}},"docs":{}}}}}}}}}},"n":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/error.html":{"ref":"concepts/error.html","tf":0.017937219730941704},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.004729530002955957},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01607717041800643},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0053207212533254505},"topics/metrics.html":{"ref":"topics/metrics.html","tf":10.03125}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}}},"d":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":10.024691358024691},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":10.095238095238095},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"e":{"docs":{},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"r":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693}},":":{"docs":{},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}}},"docs":{}}},"docs":{}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"l":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"2":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"s":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"k":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"p":{"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"k":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.03125},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}}}}}}}},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":10.095238095238095},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}},"启":{"docs":{},"用":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"名":{"docs":{},"称":{"docs":{},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.377252252252252},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0029559562518474726}},"e":{"docs":{},"(":{"docs":{},"w":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"他":{"docs":{},"们":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"和":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"s":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"x":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":5.011764705882353},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0073898906296186815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.002069169376293231}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"s":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}}}},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0026603606266627253}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"s":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0014779781259237363}}}},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"o":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"?":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"u":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/method.html":{"ref":"topics/method.html","tf":0.05660377358490566},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"a":{"docs":{},"y":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}},".":{"docs":{},"v":{"9":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"./":{"ref":"./","tf":0.007685486254803429},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.024305555555555556}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}},"e":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"判":{"docs":{},"断":{"docs":{},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},".":{"docs":{},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"`":{"docs":{},"^":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"o":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"r":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"q":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.03571428571428571},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.025454545454545455},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{},"可":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/rest.html":{"ref":"topics/rest.html","tf":10.018181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004433934377771209}},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.020754716981132074},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.04918032786885246},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.027544910179640718},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.032407407407407406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"l":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0023647650014779783},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":10.041666666666666}},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"=":{"docs":{},"\"":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},"\"":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":10.009580838323354},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":10}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"./":{"ref":"./","tf":0.0017735737511084836}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"n":{"docs":{},"s":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.016587677725118485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0026603606266627253}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"。":{"docs":{},"值":{"docs":{},"使":{"docs":{},"用":{"docs":{},"逗":{"docs":{},"号":{"docs":{},"分":{"docs":{},"隔":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"参":{"docs":{},"数":{"docs":{},"来":{"docs":{},"源":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"表":{"docs":{},"示":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"(":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"[":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},".":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.016339869281045753},"topics/router.html":{"ref":"topics/router.html","tf":0.034129692832764506},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.004729530002955957},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.026415094339622643},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.125},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},"/":{"docs":{},"[":{"docs":{},"]":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.014492753623188406},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"{":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"a":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},".":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"a":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"b":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"v":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673}},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"h":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},"w":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"m":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"n":{"docs":{},"i":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"u":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.008572273130357671},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"r":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"x":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"b":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"docs":{}},"3":{"2":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":10.002229654403568}}}}}},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.017948717948717947},"guides/client.html":{"ref":"guides/client.html","tf":0.022670025188916875},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"2":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"a":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.04150943396226415},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.1503267973856209},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.008276677505172924},"topics/validation.html":{"ref":"topics/validation.html","tf":10.040697674418604}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}},"docs":{}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"u":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/config.html":{"ref":"topics/config.html","tf":0.035493827160493825},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.005616316878510198}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"是":{"docs":{},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"a":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"│":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.11025641025641025},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.038461538461538464},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.04358974358974359},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}}}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"是":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"样":{"docs":{},"板":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"如":{"docs":{},"何":{"docs":{},"放":{"docs":{},"到":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"表":{"docs":{},"现":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"每":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"直":{"docs":{},"接":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"位":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"与":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}},"添":{"docs":{},"加":{"docs":{},"在":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}},"携":{"docs":{},"带":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"也":{"docs":{},"经":{"docs":{},"常":{"docs":{},"看":{"docs":{},"到":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"组":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"是":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"任":{"docs":{},"何":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"目":{"docs":{},"前":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"添":{"docs":{},"加":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"为":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"径":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"时":{"docs":{},"不":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},"包":{"docs":{},"含":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"实":{"docs":{},"例":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"传":{"docs":{},"递":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"的":{"docs":{},"公":{"docs":{},"开":{"docs":{},"字":{"docs":{},"段":{"docs":{},"根":{"docs":{},"据":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"规":{"docs":{},"则":{"docs":{},"参":{"docs":{},"考":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},")":{"docs":{},"从":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"印":{"docs":{},"表":{"docs":{},"格":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"为":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"所":{"docs":{},"有":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.047619047619047616}},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"演":{"docs":{},"示":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"构":{"docs":{},"建":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"端":{"docs":{},"口":{"docs":{},"是":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"设":{"docs":{},"置":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"读":{"docs":{},"取":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"从":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"显":{"docs":{},"得":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"上":{"docs":{},"所":{"docs":{},"有":{"docs":{},"节":{"docs":{},"点":{"docs":{},"按":{"docs":{},"照":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"串":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"并":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"上":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"由":{"docs":{},"命":{"docs":{},"令":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"修":{"docs":{},"改":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"前":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},",":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"时":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"非":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{},"里":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"安":{"docs":{},"装":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},"自":{"docs":{},"带":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"账":{"docs":{},"户":{"docs":{},"下":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"下":{"docs":{},"载":{"docs":{},"源":{"docs":{},"码":{"docs":{},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"开":{"docs":{},"发":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"会":{"docs":{},"打":{"docs":{},"印":{"docs":{},"出":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"用":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"或":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"双":{"docs":{},"重":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"即":{"docs":{},"请":{"docs":{},"求":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"结":{"docs":{},"束":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"示":{"docs":{},"源":{"docs":{},"地":{"docs":{},"址":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"向":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"启":{"docs":{},"动":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"编":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"单":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"包":{"docs":{},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.05405405405405406},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"一":{"docs":{},"个":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"插":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"是":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"配":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},",":{"docs":{},"为":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"如":{"docs":{},"果":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"命":{"docs":{},"令":{"docs":{},"扩":{"docs":{},"展":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"类":{"docs":{},"型":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}}},"以":{"docs":{},"下":{"docs":{},"路":{"docs":{},"径":{"docs":{},"都":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"正":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"希":{"docs":{},"望":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"读":{"docs":{},"取":{"docs":{},"到":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"下":{"docs":{},":":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"字":{"docs":{},"段":{"docs":{},"无":{"docs":{},"效":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"进":{"docs":{},"行":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"在":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"必":{"docs":{},"须":{"docs":{},"与":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"存":{"docs":{},"放":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.015384615384615385}},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"启":{"docs":{},"动":{"docs":{},"命":{"docs":{},"令":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"在":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"再":{"docs":{},"对":{"docs":{},"应":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"更":{"docs":{},"加":{"docs":{},"明":{"docs":{},"确":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"根":{"docs":{},"据":{"docs":{},"场":{"docs":{},"景":{"docs":{},"确":{"docs":{},"定":{"docs":{},"使":{"docs":{},"用":{"docs":{},"哪":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"的":{"docs":{},"可":{"docs":{},"读":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"无":{"docs":{},"关":{"docs":{},"性":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"不":{"docs":{},"能":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"任":{"docs":{},"何":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"上":{"docs":{},"添":{"docs":{},"加":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"之":{"docs":{},"后":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"在":{"docs":{},"容":{"docs":{},"器":{"docs":{},"内":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"打":{"docs":{},"包":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"看":{"docs":{},"到":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"无":{"docs":{},"效":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"错":{"docs":{},"误":{"docs":{},"能":{"docs":{},"够":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"或":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"域":{"docs":{},"名":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"与":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},"打":{"docs":{},"包":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"符":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"构":{"docs":{},"建":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"服":{"docs":{},"务":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"只":{"docs":{},"能":{"docs":{},"填":{"docs":{},"写":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"打":{"docs":{},"开":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"因":{"docs":{},"此":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"启":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"性":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"路":{"docs":{},"径":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"则":{"docs":{},"根":{"docs":{},"据":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"一":{"docs":{},"段":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"限":{"docs":{},"制":{"docs":{},":":{"docs":{},"只":{"docs":{},"能":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"确":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"此":{"docs":{},"时":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"每":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"服":{"docs":{},"务":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"份":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{},"在":{"docs":{},"一":{"docs":{},"起":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"内":{"docs":{},"容":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"互":{"docs":{},"相":{"docs":{},"之":{"docs":{},"间":{"docs":{},"不":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}},"比":{"docs":{},"如":{"docs":{},"设":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"命":{"docs":{},"令":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"演":{"docs":{},"示":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":10.025}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"规":{"docs":{},"则":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"识":{"docs":{},"别":{"docs":{},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"签":{"docs":{},"名":{"docs":{},"没":{"docs":{},"有":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"暴":{"docs":{},"露":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"服":{"docs":{},"务":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"常":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"合":{"docs":{},"并":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"真":{"docs":{},"正":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"分":{"docs":{},"析":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"表":{"docs":{},"示":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"前":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"还":{"docs":{},"不":{"docs":{},"完":{"docs":{},"善":{"docs":{},",":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"对":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"编":{"docs":{},"译":{"docs":{},"并":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"写":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"范":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}},"路":{"docs":{},"径":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"。":{"docs":{},"为":{"docs":{},"空":{"docs":{},"时":{"docs":{},"不":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"替":{"docs":{},"换":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"版":{"docs":{},"本":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"程":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"声":{"docs":{},"明":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"本":{"docs":{},"地":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"包":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"之":{"docs":{},"后":{"docs":{},"则":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},",":{"docs":{},"并":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.05714285714285714}},"字":{"docs":{},"段":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"替":{"docs":{},"换":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"空":{"docs":{},"格":{"docs":{},"后":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"这":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"是":{"docs":{},"有":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"工":{"docs":{},"具":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"判":{"docs":{},"断":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808}}}},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}},"插":{"docs":{},"件":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"三":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},":":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"包":{"docs":{},"方":{"docs":{},"便":{"docs":{},"了":{"docs":{},"用":{"docs":{},"户":{"docs":{},"创":{"docs":{},"建":{"docs":{},"能":{"docs":{},"够":{"docs":{},"被":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"分":{"docs":{},"离":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"对":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"用":{"docs":{},"特":{"docs":{},"例":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"快":{"docs":{},"速":{"docs":{},"进":{"docs":{},"行":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"添":{"docs":{},"加":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"以":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"就":{"docs":{},"表":{"docs":{},"示":{"docs":{},"文":{"docs":{},"档":{"docs":{},"生":{"docs":{},"成":{"docs":{},"成":{"docs":{},"功":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"够":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"都":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"套":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"器":{"docs":{},"机":{"docs":{},"制":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":10.009803921568627}}}}},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}},"镜":{"docs":{},"像":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"[":{"docs":{},":":{"docs":{},"模":{"docs":{},"块":{"docs":{},"名":{"docs":{},"]":{"docs":{},":":{"docs":{},"错":{"docs":{},"误":{"docs":{},"名":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"目":{"docs":{},"录":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":10.002564102564103}}}}}}}},"负":{"docs":{},"责":{"docs":{},"人":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"配":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"}":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"{":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"&":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.333333333333333}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"{":{"docs":{},"}":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"(":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}},"*":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"t":{"docs":{},"x":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"m":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},"docs":{}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"b":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},".":{"docs":{},"r":{"docs":{},".":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},":":{"8":{"0":{"8":{"0":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"=":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454},"./":{"ref":"./","tf":0.005616316878510198},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"[":{"0":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"5":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"f":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"docs":{}},"docs":{}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"docs":{}},"docs":{}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0011823825007389892}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"{":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"m":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0029559562518474726}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"*":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"i":{"docs":{},"d":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},"`":{"docs":{},"/":{"docs":{},"`":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}},"t":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/config.html":{"ref":"topics/config.html","tf":0.043209876543209874},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363}}},"y":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"k":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.018867924528301886},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.06735751295336788},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.02888086642599278},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.05},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.030716723549488054},"topics/service.html":{"ref":"topics/service.html","tf":0.03592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.046822742474916385},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.01300620750812888},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}}}}},":":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0008867868755542418}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"让":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"s":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"s":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"设":{"docs":{},"置":{"docs":{},"当":{"docs":{},"前":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"./":{"ref":"./","tf":0.0008867868755542418}},"r":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"d":{"docs":{},"o":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"w":{"docs":{},"o":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"b":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}},"r":{"docs":{},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"y":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.037815126050420166},"./":{"ref":"./","tf":0.015370972509606859},"topics/routes.html":{"ref":"topics/routes.html","tf":0.041666666666666664},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"}":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.017341040462427744},"guides/client.html":{"ref":"guides/client.html","tf":0.04534005037783375},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.04201680672268908},"./":{"ref":"./","tf":0.012415016257759386},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.05},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}},"与":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"名":{"docs":{},"称":{"docs":{},"无":{"docs":{},"关":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"类":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"任":{"docs":{},"何":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"件":{"docs":{},"事":{"docs":{},"情":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"上":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"外":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"十":{"docs":{},"分":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"设":{"docs":{},"置":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"取":{"docs":{},"得":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"中":{"docs":{},"确":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"使":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"始":{"docs":{},"终":{"docs":{},"建":{"docs":{},"议":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"这":{"docs":{},"样":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"时":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"等":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"呈":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"作":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{},"一":{"docs":{},"旦":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"即":{"docs":{},"使":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"发":{"docs":{},"生":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"加":{"docs":{},"载":{"docs":{},"时":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"例":{"docs":{},"值":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"意":{"docs":{},"义":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"值":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"放":{"docs":{},"到":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"放":{"docs":{},"置":{"docs":{},"到":{"docs":{},"全":{"docs":{},"局":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"成":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"删":{"docs":{},"除":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"参":{"docs":{},"数":{"docs":{},"值":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"当":{"docs":{},"前":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"定":{"docs":{},"义":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"考":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"既":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"里":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"通":{"docs":{},"过":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}},"构":{"docs":{},"建":{"docs":{},"带":{"docs":{},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"在":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"结":{"docs":{},"构":{"docs":{},"对":{"docs":{},"象":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"使":{"docs":{},"用":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"被":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"名":{"docs":{},"称":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"因":{"docs":{},"为":{"docs":{},"只":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"始":{"docs":{},"终":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"。":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"错":{"docs":{},"误":{"docs":{},"仅":{"docs":{},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"异":{"docs":{},"步":{"docs":{},"修":{"docs":{},"改":{"docs":{},"资":{"docs":{},"源":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"删":{"docs":{},"除":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"发":{"docs":{},"出":{"docs":{},"后":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"是":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"加":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"或":{"docs":{},"者":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"供":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"后":{"docs":{},"续":{"docs":{},"查":{"docs":{},"询":{"docs":{},"请":{"docs":{},"求":{"docs":{},"执":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"就":{"docs":{},"要":{"docs":{},"求":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"必":{"docs":{},"须":{"docs":{},"放":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"功":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"以":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"口":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"即":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"如":{"docs":{},"果":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"征":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"携":{"docs":{},"带":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"关":{"docs":{},"于":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"现":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"跟":{"docs":{},"踪":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},":":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"显":{"docs":{},"式":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"收":{"docs":{},"配":{"docs":{},"置":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"些":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"方":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"下":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"据":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"方":{"docs":{},"法":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"比":{"docs":{},"如":{"docs":{},"某":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"包":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":10.004587155963304}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"就":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"都":{"docs":{},"是":{"docs":{},"语":{"docs":{},"义":{"docs":{},"层":{"docs":{},"面":{"docs":{},"的":{"docs":{},",":{"docs":{},"为":{"docs":{},"的":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"得":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}},"一":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"二":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"对":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"直":{"docs":{},"接":{"docs":{},"创":{"docs":{},"建":{"docs":{},"出":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"安":{"docs":{},"装":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"验":{"docs":{},"证":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"种":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"插":{"docs":{},"件":{"docs":{},"允":{"docs":{},"许":{"docs":{},"插":{"docs":{},"件":{"docs":{},"设":{"docs":{},"置":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"无":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"时":{"docs":{},"候":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"不":{"docs":{},"能":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"多":{"docs":{},"个":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"资":{"docs":{},"源":{"docs":{},"唯":{"docs":{},"一":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"添":{"docs":{},"加":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353}},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"匹":{"docs":{},"配":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}},"到":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"类":{"docs":{},"型":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"名":{"docs":{},"称":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"一":{"docs":{},"般":{"docs":{},"不":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"被":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"变":{"docs":{},"成":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"组":{"docs":{},"合":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"具":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"列":{"docs":{},"表":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"里":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":10.023809523809524}},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"追":{"docs":{},"踪":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":10.016129032258064}},"基":{"docs":{},"于":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"返":{"docs":{},"回":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"自":{"docs":{},"动":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"的":{"docs":{},"是":{"docs":{},"资":{"docs":{},"源":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"回":{"docs":{},"去":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"是":{"docs":{},"否":{"docs":{},"健":{"docs":{},"康":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"出":{"docs":{},"去":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"描":{"docs":{},"述":{"docs":{},"的":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"决":{"docs":{},"定":{"docs":{},"请":{"docs":{},"求":{"docs":{},"是":{"docs":{},"否":{"docs":{},"继":{"docs":{},"续":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"提":{"docs":{},"供":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}},"任":{"docs":{},"何":{"docs":{},"更":{"docs":{},"新":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},"工":{"docs":{},"具":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"两":{"docs":{},"个":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"正":{"docs":{},"确":{"docs":{},"层":{"docs":{},"级":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"业":{"docs":{},"务":{"docs":{},"有":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"包":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"退":{"docs":{},"出":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"些":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}},"了":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"遵":{"docs":{},"守":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"里":{"docs":{},"取":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"的":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"文":{"docs":{},"本":{"docs":{},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"链":{"docs":{},"接":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":10.004484304932735}}}}},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"在":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"生":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"四":{"docs":{},"个":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"了":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"路":{"docs":{},"径":{"docs":{},"为":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.0054945054945055}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":10.030188679245283},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01444043321299639},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":10}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":10},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0014779781259237363}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"(":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}},"。":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/config.html":{"ref":"topics/config.html","tf":0.020061728395061727},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"m":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.016981132075471698},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"o":{"docs":{},"f":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"v":{"2":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"docs":{}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}}}},"docs":{}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"s":{"docs":{},")":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"|":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"公":{"docs":{},"开":{"docs":{},"给":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}},"共":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"构":{"docs":{},"建":{"docs":{},",":{"docs":{},"而":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"查":{"docs":{},"看":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"成":{"docs":{},"为":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"且":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"一":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"从":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{},"之":{"docs":{},"前":{"docs":{},"让":{"docs":{},"用":{"docs":{},"户":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"而":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"生":{"docs":{},"成":{"docs":{},"服":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"一":{"docs":{},"些":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"交":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"代":{"docs":{},"码":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":10.002518891687657},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"是":{"docs":{},"版":{"docs":{},"本":{"docs":{},"化":{"docs":{},"的":{"docs":{},",":{"docs":{},"版":{"docs":{},"本":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"两":{"docs":{},"者":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"新":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},",":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"器":{"docs":{},"这":{"docs":{},"个":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"特":{"docs":{},"定":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"而":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"读":{"docs":{},"基":{"docs":{},"本":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"则":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"效":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"对":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"端":{"docs":{},"口":{"docs":{},"提":{"docs":{},"供":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"防":{"docs":{},"止":{"docs":{},"端":{"docs":{},"口":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"名":{"docs":{},"称":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"该":{"docs":{},"命":{"docs":{},"令":{"docs":{},"不":{"docs":{},"会":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"输":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"日":{"docs":{},"志":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"会":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"!":{"docs":{},"=":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0014779781259237363},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.03536977491961415},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}}}}}}}}}},"v":{"1":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}},"/":{"docs":{},"*":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},".":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"范":{"docs":{},"例":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"比":{"docs":{},"较":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"来":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":10.003058103975535}},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"尚":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},")":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"指":{"docs":{},"定":{"docs":{},"其":{"docs":{},"他":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"良":{"docs":{},"好":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"以":{"docs":{},"供":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"限":{"docs":{},"制":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"x":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"m":{"docs":{},"l":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"取":{"docs":{},"得":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"会":{"docs":{},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"框":{"docs":{},"架":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"在":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"就":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"这":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"还":{"docs":{},"有":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"些":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"私":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"插":{"docs":{},"件":{"docs":{},"应":{"docs":{},"该":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"件":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"则":{"docs":{},"负":{"docs":{},"责":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"转":{"docs":{},"换":{"docs":{},"等":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"更":{"docs":{},"加":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"化":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"被":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"由":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"注":{"docs":{},"册":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"包":{"docs":{},"装":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"一":{"docs":{},"组":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"个":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"用":{"docs":{},"于":{"docs":{},"校":{"docs":{},"验":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"方":{"docs":{},"法":{"docs":{},"注":{"docs":{},"册":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"进":{"docs":{},"行":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"包":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"是":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"插":{"docs":{},"件":{"docs":{},"能":{"docs":{},"力":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}},"括":{"docs":{},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"占":{"docs":{},"位":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"值":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"对":{"docs":{},"应":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"分":{"docs":{},"离":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"基":{"docs":{},"础":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"共":{"docs":{},"工":{"docs":{},"具":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{},"采":{"docs":{},"集":{"docs":{},"端":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"包":{"docs":{},"含":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"多":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"基":{"docs":{},"于":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"际":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"如":{"docs":{},"下":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"的":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"之":{"docs":{},"所":{"docs":{},"以":{"docs":{},"不":{"docs":{},"复":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"类":{"docs":{},"型":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"稍":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"包":{"docs":{},"含":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"进":{"docs":{},"行":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"路":{"docs":{},"由":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"和":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"其":{"docs":{},"他":{"docs":{},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"的":{"docs":{},"包":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"借":{"docs":{},"助":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}},"会":{"docs":{},"从":{"docs":{},"以":{"docs":{},"下":{"docs":{},"文":{"docs":{},"件":{"docs":{},"列":{"docs":{},"表":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"包":{"docs":{},"都":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"简":{"docs":{},"单":{"docs":{},"很":{"docs":{},"多":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"里":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"去":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"名":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"际":{"docs":{},"上":{"docs":{},"要":{"docs":{},"填":{"docs":{},"写":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"只":{"docs":{},"与":{"docs":{},"自":{"docs":{},"身":{"docs":{},"业":{"docs":{},"务":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"例":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"将":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"它":{"docs":{},"的":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"写":{"docs":{},"入":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"找":{"docs":{},"到":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"才":{"docs":{},"算":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},":":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"包":{"docs":{},"里":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"户":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"上":{"docs":{},"每":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"都":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"注":{"docs":{},"册":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"空":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"身":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"快":{"docs":{},"速":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"过":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},"指":{"docs":{},"定":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"常":{"docs":{},"规":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{},"签":{"docs":{},"名":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"尾":{"docs":{},"部":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"收":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"用":{"docs":{},"于":{"docs":{},"单":{"docs":{},"独":{"docs":{},"配":{"docs":{},"置":{"docs":{},"每":{"docs":{},"一":{"docs":{},"项":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}},"首":{"docs":{},"部":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"看":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"本":{"docs":{},"身":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"确":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"处":{"docs":{},"理":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"启":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"将":{"docs":{},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"用":{"docs":{},"于":{"docs":{},"接":{"docs":{},"收":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"(":{"docs":{},"都":{"docs":{},"是":{"docs":{},"指":{"docs":{},"针":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"值":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"下":{"docs":{},"查":{"docs":{},"看":{"docs":{},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}},"面":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"来":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"一":{"docs":{},"些":{"docs":{},"附":{"docs":{},"加":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},">":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"且":{"docs":{},"成":{"docs":{},"功":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"按":{"docs":{},"照":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{},"链":{"docs":{},"继":{"docs":{},"续":{"docs":{},"传":{"docs":{},"递":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"经":{"docs":{},"由":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"去":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"才":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"而":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}},"负":{"docs":{},"责":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"大":{"docs":{},"致":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},"并":{"docs":{},"不":{"docs":{},"足":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},"繁":{"docs":{},"复":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}},"视":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"大":{"docs":{},"类":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"带":{"docs":{},"有":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"资":{"docs":{},"源":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"或":{"docs":{},"者":{"docs":{},"找":{"docs":{},"不":{"docs":{},"到":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"大":{"docs":{},"类":{"docs":{},"下":{"docs":{},"定":{"docs":{},"义":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"他":{"docs":{},"与":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"具":{"docs":{},"体":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"证":{"docs":{},"书":{"docs":{},"和":{"docs":{},"密":{"docs":{},"钥":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"机":{"docs":{},"制":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":10.004672897196262}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"整":{"docs":{},"合":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"区":{"docs":{},"别":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"统":{"docs":{},"一":{"docs":{},"网":{"docs":{},"关":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"暴":{"docs":{},"露":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"模":{"docs":{},"式":{"docs":{},"后":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":10.014492753623188}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"伪":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"按":{"docs":{},"照":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}},"列":{"docs":{},"包":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"包":{"docs":{},"含":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"上":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"打":{"docs":{},"印":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"。":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"提":{"docs":{},"取":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"监":{"docs":{},"控":{"docs":{},"指":{"docs":{},"标":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":10.027027027027026}},"基":{"docs":{},"于":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"采":{"docs":{},"集":{"docs":{},"指":{"docs":{},"标":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"的":{"docs":{},"提":{"docs":{},"取":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"前":{"docs":{},"缀":{"docs":{},"路":{"docs":{},"径":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}},"性":{"docs":{},"能":{"docs":{},"分":{"docs":{},"析":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":10.03448275862069}},"添":{"docs":{},"加":{"docs":{},"与":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"值":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}}}}}}}},"健":{"docs":{},"康":{"docs":{},"检":{"docs":{},"查":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":10.027777777777779}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}},"应":{"docs":{},"该":{"docs":{},"返":{"docs":{},"回":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":10.0078125}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"从":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"增":{"docs":{},"加":{"docs":{},"相":{"docs":{},"应":{"docs":{},"字":{"docs":{},"段":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"应":{"docs":{},"该":{"docs":{},"使":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"另":{"docs":{},"外":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"大":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{},"即":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"字":{"docs":{},"段":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"具":{"docs":{},"介":{"docs":{},"绍":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"持":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"变":{"docs":{},"更":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"标":{"docs":{},"准":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"识":{"docs":{},"别":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"中":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"引":{"docs":{},"入":{"docs":{},"对":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"容":{"docs":{},"器":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"和":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"验":{"docs":{},"证":{"docs":{},"方":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"这":{"docs":{},"些":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"z":{"docs":{},"]":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"*":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"正":{"docs":{},"则":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"余":{"docs":{},"路":{"docs":{},"径":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"完":{"docs":{},"成":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"也":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"就":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"掉":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"↑":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293}}},"↓":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497}}},"处":{"docs":{},"理":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"等":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"还":{"docs":{},"会":{"docs":{},"将":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"针":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"是":{"docs":{},"针":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"p":{"docs":{},"'":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}},"g":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"了":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"于":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"要":{"docs":{},"求":{"docs":{},"每":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"用":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}},"\\":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"t":{"docs":{},"]":{"docs":{},"*":{"docs":{},"=":{"docs":{},"(":{"docs":{},".":{"docs":{},"*":{"docs":{},")":{"docs":{},"$":{"docs":{},"`":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"\\":{"docs":{},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"反":{"docs":{},"序":{"docs":{},"列":{"docs":{},"化":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"可":{"docs":{},"读":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"。":{"docs":{},"两":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"上":{"docs":{},"述":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"%":{"docs":{},"s":{"docs":{},":":{"docs":{},"%":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"o":{"docs":{},"u":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"length":6914},"corpusTokens":["!=","\"\"","\"\",","\"${customer}","\"${name}","\"${user}","\"*/*\"","\"*/*\".","\"/\",","\"/api\",","\"/api/v1\",","\"/api/v1/some\".","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"/apis/v1/someapi\"","\"/child\",","\"/echo\",","\"/messages\",","\"/messages/{message}\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"accept\"","\"accept\".","\"alias\"","\"alice\",","\"apach","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"boilerplate\",","\"build","\"clientset/svca\"","\"clientset/svcb\"","\"content","\"context\"","\"context\",","\"converter\"","\"converter\"}","\"correspond","\"count\",","\"creat","\"create\"","\"custom\"","\"data\"","\"debian:jessie\",","\"delete\"","\"descriptors\"","\"docker","\"echo","\"error","\"error\"","\"exampl","\"fatal\"","\"file\"","\"first","\"form\"","\"get","\"get\"","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"github.com/caicloud/nirvana/rest\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"header\"","\"hello","\"here","\"http\"","\"http\",","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https\".","\"https://gonirvana.io\",","\"imag","\"info\"","\"init","\"list","\"list\"","\"listmessages\"),","\"localhost:8080\",","\"messag","\"message\":","\"meta\"","\"method","\"methodname\")","\"modifiers\"","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"myproject/client/v1\"","\"nirvana","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"number","\"openapi","\"origin\"","\"patch\"","\"path","\"path\"","\"pluginname\"","\"prefab\"","\"queri","\"query\"","\"registries\",","\"result","\"runtim","\"second","\"source\".","\"source,name\".","\"struct\"","\"text/plain\"","\"there","\"thi","\"update\"","\"v0.1.0\",","\"v1.0.0\",","\"valid","\"validator\"","\"validator\"}","\"var\"","\"version\",","\"warn\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/clientset","$gopath/src/myproject","$gopath/src/svca","$gopath/src/svcb","$path","${customer})","${id}\")","${name}","%s:%d\",","&&","&clientset{}","&client{","&client{client},","&client{}","&cobra.command{","&common.config{","&container{title,","&container{}","&initoptions{}","&message{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'content","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'myconfig.name.firstname'.","'nirvana.ip'","'{\"name\":","(","(*api.definitions,","(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(*client,","(*container)(nil)","(*definitions,","(*http.response,","(*message,","(*spec.swagger,","(*types.package,","([]message,","([]string,","(a","(ac","(against","(and","(anytype,","(apachebench)","(b","(bool,","(builder","(c","(checkout","(ctx","(e.g.","(executor,","(exported)","(from","(goon","(i","(in","(includ","(interface,","(interface{},","(m","(messag","(message1","(multipart.file,","(o","(or","(pem","(r","(reader","(response,","(service,","(string,","(types.object,","(uint,","(unexported)","(w.r.t","(with",")","*","*/*","*/*。","*analyz","*analyzer)","*api.message)","*apibuild","*apibuilder)","*ast.commentgroup","*body)","*client","*client)","*clientset)","*cobra.command","*cobra.command)","*cobra.command,","*comment","*config","*config)","*contain","*container)","*converterforanobject)","*definition.definition)","*http.request","*http.request)","*initoptions)","*int,","*map[string]string)","*message,","*message.contain","*nirvana.config)","*pflag.flagset)","*plugininstaller)","*regexp.regexp","*request","*request)","*rest.client","*rest.config)","*string).","*v1.client","*validatorforanobject)","+caicloud:openapi=tru","+nirvana:api=option:\"value\"。","+nirvana:openapi=tru",".",".*:","...","...configurer)","...customoption)","...definition.descriptor)","...filter)","...interface{})","...plugin)","...service.definitionmodifier)","...service.filter)","...string)","../clientset/svca","../clientset/svcb","./","./bin/myproject","./build/myproject/dockerfil","./client","./client.go","./config/","./examples/get","./myproject","./v1/client.go","./v1/types.go","/","//","/apis/v1","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/resourc","/apis/v1/resources/{resource}","/apis/v1/{regexp:[a","/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","/echo","/echo,","/echo[?msg=]","/etc/nirvana/","/go/package/to/your/generated/funct","/go/package/to/your/typ","/healthz","/healthz。","/home/go/src/myproject","/metric","/path","/path/path2","/path/path2/oth","/path/to/project\",","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","/version","/version。","/。","/,如果存在就重定向到没有","/,如果没有就加上","0","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0.","0202","0702","0;","1","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","1.","1.10.x","1.9.x","10","10)","10,","100","100)","1000","1000,","101","101\",\"data\":{\"id\":\"101\"}}","11","11.2","11.3","11.4","11.5","11:18:50.235+08","126","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","16:34:38.663+08","1:","1,并且把","2","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","2.","2.0","2.0\",","2.3.3","200","200,","201","202","204","2295,","260","2774,","28","2:","2>&1","3","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","3.","3.1","3.2","300","4","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","4.","4.2","4.4","404","41","48533","4918,","5","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","5.","500","500,","50554","507","53","55","5842,","6","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","6.","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","7.2","7168,","7231,","7232,","7233,","7235,","73","7725,","8","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","8.1","8080","8080).","8080:8080","8080。","89","9\",\"content\":\"method","9\"}]","90","90m.","98","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[5,","[]*ast.commentgroup","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","[]consumer,","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.middleware{somemiddleware},","[]def.operator{","[]def.parameter{","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{newcustom(f,\"custom","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.parameter{},","[]definition.result{","[]descriptor","[]exampl","[]filter","[]funcfield","[]index","[]int","[]message,","[]middlewar","[]oper","[]paramet","[]producer,","[]result","[]string","[]string)","[]string.","[]string{\"text/plain\"},","[]string{commentsoptiondescriptors,","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[]string{},","[]structfield","[text/plain]","[{\"id\":0,\"title\":\"method","\\","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","`","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`converter`.","`default`","`desc:\"debug","`desc:\"desc","`desc:\"log","`desc:\"nirvana","`desc:\"overrid","`desc:\"tl","`desc`","`desc`).","`json:\"content\"`","`json:\"id\"`","`json:\"message\"","`json:\"name\"","`json:\"title\"`","`key`","`name`","`pointer`","`source:\"header,cont","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source:\"query,start\"`","`source:\"query,start,default=100\"`","`source`","`source`.","`validator`.","a.","ab","abov","above.","above:","accept","accept:","accepttypeal","access","account}/nirvana.git","actions.","activ","actual","ad","add","add(point","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","addhook(hook","addit","addmodifi","addmodifier(modifi","addopt","addoption(prefix","adopt","advanc","aforement","after(ctx","ag","age\"`","agenthostport","aim","alias.","allow","altern","alway","analyz","analyzeranalyz","ananlyzer.","anonym","anoth","anotherautostruct","anyth","anytyp","anytype)","api","api\",","api.getopenapidefinitions,","api.go","api.go:179","api.go:87","api.go:95","api.register(root)","apibuild","apis.","api。","api。api","api,并且允许用户接入其他日志系统。","api,用于取得服务运行时信息。","api,用于生成","api,用于获取一条消息:","appear","append","applic","application'","application.","application/json","application/json\"","application/json'","application/octet","application/x","application/xml","approach","arg","args);","argument","around","array","array\",","array,","associ","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","automat","avoid","b.","back","badgateway","badrequest","base","baseline,","basic","basics.","befor","before(ctx","before.","behavior","behavior,","behavior.","below","best","between","bin","bind","bit","block","bodi","body()","body(contenttyp","body,","body.","body.nam","body.name)","body,但是","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","boilerpl","boilerplate\")","bool","bool(tag","bool)","bool):","bool,","bool.","boost","box","brief","broken","browser","build","build()","build(reason","builder","builder()","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","builder,factori","builder:","buildimag","built","busniess","by:","byte","byte(tag","bytes.","c","c,","c.rest.request(\"get\",","c.set(externalconfigname,","c.svca","c.svca,","c.svcb","c.svcb,","c.v1","c.v1,","caicloud.","call","called.","can't","capabl","care","careful,","carri","case","case,","cases,","categori","category()","categorycustom","categorystruct","categoryvar","cd","cert","certain","certif","cfg","cfg)`","chain","chain)","chain.continue()","chang","char","charact","characters,","characters.","check","checker","checker(check","checkout","child","children","children:","children;","class","clean","cleaner","cleaner.","clearer","cli","cli,","cli.svca().v1().listmessages(context.background(),","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","client.register(root)","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","client。而","client,用于生成","clone","clone(wrapp","cmd","cmd/nirvana","cobra","code","code()","code,","code.","collect","comamnd","combin","combination.","come","comma","command","command(cfg","command,","command.","commands.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","commit","common","complet","complex","complic","concept","concret","conet","config","config(nam","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.json","config.port())","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","configuration,","configuration:","configure(","configure(cfg","configure(configur","configurers.","configurers:","configurer:","config:","conflict","connections.","consist","const","consum","consume(r","consume.","consumeallifconsumesisempti","consumenoneforhttpget","consumers:","consumer,converter,prefab","consumer,即允许请求体为空。","consumer:","consumes.","consumes:","contact:","contacts:","contain","container.","containercontain","container:","content","content\"))","content\",","content\"}","content.","content:","contention(en","contentlength","contentlength()","contenttyp","contenttype()","content}","context","context,","context.","context.context","context.context)","context.context,","context.context。","contexthttpcontext","contextprefab","contextprefab。请参考","contextu","context。http","context。在这种场景下,如果每个","continu","continue(context.context)","continue):","contribut","contriv","conveni","convent","convention,","convert","converter.","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","convertor,","core","core,","correct\")","correct\",","correspond","count","count)","count).","counter","cover","cpu","creat","create:","create)。","creation,","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","customopt","customtracer(trac","d","data","data\"","data\".","data(&messages).","data(message1).","data(valu","data.","data,然后","db","deal","debian:jessi","debug","decid","declar","dedic","def.dataerrorresults(\"a","def.definition.","def.definition{","def.descriptor{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.prefab,","def.query,","default","default()","default,","default:","default={value}","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","defaulttracer(servicenam","defaultvalu","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor","definition.descriptor.","definition.descriptor{","definition.destin","definition.error,","definition.error。","definition.funct","definition.get,","definition.method","definition.middlewar","definition.oper","definition.operatorfunc(operatorkind,","definition.paramet","definition.produc","definition.query,","definition.sourc","definition.typ","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definition/method","definition:","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definitions:","definition。在我们实际开发过程中,经常会要求","definition。请求过滤器则是在","definition此处的","delet","dep","depend","dep:https://github.com/golang/dep","deriv","derived(","desc","descid","describ","descript","description\")}","description\",","description()","description(descript","description:","descriptions.","descriptor","descriptor'","descriptor(descriptor","descriptor,","descriptor.","descriptor:","descriptors.","descriptors.go","descriptor。","descriptor。然后动态生成一个","descriptor:","design","destin","destination()","destination:","destinationhandl","destinationhandler)","destinationhandlerdestinationhandl","destination:meta,data,error。","detail","details,","develop","developmenet","diagnos","didn't","differ","direct","directli","directori","disabl","disable()","disabled.","discouraged.","distinguish","distribut","divid","do(ctx","do(ctx)","do(req","do.","doc","doc.","doc.go","dockefile),还有一个","docker","dockerfil","docs,","docs.","doctoc","document","documentation.","documentations,","don't","done","done,","doublelog(en","down","draft","dri","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","elem","element","email:","embed","empti","empty,","enabl","enabled\"`","enableplugin","enableplugin(plugin","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","entranc","entry.","env","env,","equal","err","error","error()","error(...interface{})","error(format","error(v","error)","error)。其中参数的","error,","error.","error:field","errorf","errorf(string,","errorln","errorln(...interface{})","errorproduc","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"myproject:message:messagenotexist\",","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","errors:","error。","error。其中","error。创建","error,但是第一种方法比第二种多出更多特性:","errros.","etc","etc.","etc;","even","everyth","ex.","exact","exampl","example\",","example\",\"content\":\"exampl","example):","example,","example.","example.ag","example.firstnam","example:","example_ag","example_first_nam","except","exec","execut","execute(context.context)","execute(descriptor","execute.","executed.","executewithconfig","executewithconfig(cfg","executing.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exist","exists,","exit","exp","exp:","expectationfail","experience.","expired.","expos","expression.","extend","extens","extern","externalconfignam","extract","f","f(context.context,","f)","f.","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","facts:","fail","faileddepend","fals","false,","false.","fast","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","featur","few","field","field,","field.","fielda.","fieldb.","fields,","fields.","fieldtype)","file","file(key","file(nam","file)","file,","file.","file。","fill","fillleadingslash","filter","filter(filt","filtered.","filters()","filters.","filters.go","filter。","final","finally,","find","findpackag","findpackages(target","finish","first","first.","firstcontextparamet","firstnam","fix","flag","flag,","flags,","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","flags/env/config","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","flag。","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float*,","float32","float32.","float64","float64((time.since(starttime))","float64.","flow","fmt.print;","fmt.printf;","fmt.println;","follow","for(f","forbidden","fork","form","form(key","form(nam","format","format)","format.","format:","formats)","formatt","format,比如","found\")","found\",","found\")。","four","framework","framework!","framework:","frequent","from.","full","fullmatch:.*","fullmatchregexpnod","func","func()","func(c","func(cmd","func(context.context,","func(ctx","func(d","func(resp","func.","funcfield","function","function.","function:","functionalities.","functions.","functions:","funtion","future.","gatewaytimeout","gen","gen.","gener","generate()","generate(ctx","generation,","generator.","generators/golang","generators/swagg","generators/util","generator。这些","generator:","get","get()","get(inst","get(key","get(typin","get/list","get/sav","get____","getbool","getbool(key","getdefinitions:","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","gethttpclient(req),","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getmessag","getmessage(ctx","getopenapidefinit","getopenapidefinitions.","getopenapideinit","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","get。","get,两者没有区别。","git","git@github.com:{your","github","github.com/caicloud/","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/definition/method","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","github.com/caicloud/nirvana/plugins/healthcheck","github.com/caicloud/nirvana/plugins/logg","github.com/caicloud/nirvana/plugins/metr","github.com/caicloud/nirvana/plugins/profil","github.com/caicloud/nirvana/plugins/reqlog","github.com/caicloud/nirvana/plugins/trac","github.com/caicloud/nirvana/servic","github.com/go","github.com/golang/dep/cmd/dep","github.com/spf13/cobra","github.com/spf13/vip","githuh","given","glance,","global","glog","glog.","go","go.","goal","goe","golang","golang/dep","golang:latest","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","gone","good","goon,用来确定是否需要执行下一个","gopkg.in/go","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","gracefulli","grep","guid","h","handl","handle(ctx","handle.","handler","handler(request","handler.","handlers.","handler。","handler。这些","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","handler:","happen","hash","hash(hash","header","header(key","header(nam","header.","headers:","headerwrit","headerwritable()","healthcheck","healthchecker)","help","help`,","helper","here","high","higher","highest","highprior","histogram","hold","hood,","hook","hook()","hook)","hook.","host","host:","host:port","hosts:","http","http.defaultcli","http.handler","http.handler,用来处理请求。","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.responsewrit","http.responsewriter,","http.responsewriter.","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","http://127.0.0.1:8081","http://host:port/metrics.","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","http://localhost:8080/apis/v1/messages/101,即可得到一个","http://localhost:8080/apis/v1/messages:","http://localhost:8080/echo","http://localhost:8080/metr","httpcode","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","httpctx","httpctx.request()","httpctx.responsewriter()","httpmethod","https\"`","https.","https://editor.swagger.io/,","httpversionnotsupport","i)","i.e.","id","id\"),","id\",","id,","id.","id/nam","id:","idea","ident","identifi","id,也就是","ifac","ignor","ignored.","imag","image\",","imageprefix","imagesuffix","immedi","immediately.","impact","implement","implementation,","implementation.","implemented:","import","import(path","improv","in()","includ","include:","incom","increas","index","indic","individu","info","info(...interface{})","info(f|ln)","info,","info.","info:","infof","infof(string,","infoln","infoln(...interface{})","infoln.","infoprops:","inform","information.","inherit","init","init()","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","inject","input","input(","input,","input.","insensit","insid","inspect","inspect(context.context)","inspector","inspector:","instal","install(build","install(flag","install/initi","instanc","instance)","instance.","instead","instead,","insterface{})","instrument","instrumentation.","insufficientstorag","int","int(tag","int)","int*,","int,","int.","int16","int16(tag","int32","int32(tag","int32.","int64","int64(tag","int64.","int8","int8(tag","integr","intercept","interfac","interface,","interface.","interface:","interface{}","interface{})","interface{},","intern","internalservererror","interrupt","introduc","introduct","invalid","io.read","io.readclos","io.readcloser,","io.reader,","io.writer,","ip","ip\"`","ip()","ip(ip","ip.","is,","is:","isset","isset(key","it!","it'","it.","it:","itself).","itself.","json","json.marsh","json.newencoder(os.stdout)","json.unmarsh","keep","key","key,","key.","key/valu","key:","keyfil","keyword.","key,默认为","kickoff","kind","kind()","kind.","knob","know","language:","larger","last","lasterrorresult","latenc","latencies.","layout","length","lengthrequir","let'","level","level,","level.","leveldebug","leveldebug)","levels.","librari","license,","license:","lifecycle.","line","list","listen","listen.","listmessag","listmessages(ctx","load;","localhost:8080","locat","locations.","lock","locked()","locked.","log","log.","log.fatal(err)","log.fatalln(err)","log.info(msgs)","log.infof(\"listen","log.logg","log.logger)","log.v(4).info","logger","logger\"`","logger()","logger(l","logger(logg","logger.","logger。","logger,使用的是","logger,用于输出错误。","logic","logo","logs\"`","logs,","logs.","long:","longer","look","loopdetect","lot","lower","lowprior","main","main()","main.go","maintain","make","make([]message,","make(ctx","makefil","makefile,只需要使用简单的","management,","mani","manner","map","map,","map.","map[string][]definit","map[string][]definition.definit","map[string][]definition.middlewar","map[string][]str","map[string]str","map[string]string,会写入","map[typename]*typ","mappings.","marshal","match","match.","matching.","math.maxint32","mean","mechan","mediumprior","mention","messag","message\"),","message\",","message()","message).","message,","message.","message.getmessage,","message.go","message.listmessages,","message1","messagenotexist","messagenotexist.error(id)","messages\"),","messages\",","messages.","meta","meta(valu","method","method)","method,","method.","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","methodnotallow","methods,","methods.","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","micro","microsecond","middlewaar","middlewar","middlewares()","middlewares.","middlewares.go","middlewares:","middlewares,definitions,children","millisecond","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","missing.","mkdir","mode.","modif","modifi","modifier()","modifier(modifi","modifier.","modifiers.","modifiers.go","modifiers。","modifier。","moditi","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","msgs,","multipart/form","multipl","mustnewcli","mustnewclient(cfg","mustnewclientset","mustnewclientset(cfg","myproject","myproject/cli","myproject:v0.1.0","myself\"}'","n","name","name!\")","name\"),","name\"`","name()","name(nam","name,","name.","name:","names.","namespac","namespace(n","namespace.","namespace:","namespaces.","natur","necessary,","need","need.","neg","nest","net/http/pprof","net/http/pprof.","networkauthenticationrequir","new","new(message)","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newclient","newclient(cfg","newclient(cfg)","newclientset","newclientset(cfg","newclientset(cfg)","newcontain","newcontainer()","newcontainer(root","newcontainer(title,","newcustom","newcustom(f","newinitcommand","newinitcommand()","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","newlin","newmetricsmiddleware(namespac","newserv","newserver(c","newsimpleserializer(contenttype)","next","next.continue(ctx)","nil","nil)","nil,","nil.","nil。如果服务异常,则返回相应的错误。","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.json","nirvana.newdefaultconfig(\"\",","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana.toml","nirvana.yaml","nirvana.yaml。","nirvana:","nirvana_ip).","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","nobodi","nobody@nobody.io","node.","node:","nodes:","non","notaccept","note","notextend","notfound","noth","nothing)","notice:","notimpl","now","number","obey","object","object,","object.","objectof","objectof(pkg,","objv2,","obtain","occur","occurs,","occurs.","offset","ok","ok,","on","on,","on.","onc","once.","one,","one.","opeartor","open","openapi","openapi\",","openapi()","openapi,","openapi.","openapi/spec","opentrac","opentracing.span)","opentracing.tracer)","oper","operate(ctx","operator'","operator,","operator.","operator;","operatorfunc","operatorfunc(kind","operatorkind","operators.","operators/convert","operators/valid","operators:","operators:","operator。","operator,那么","operator:","operator:valid","optim","option","option,","optional.","options.","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","optionsregexp","option,并且实现","order.","order:","origin","os.exit(1)","os.exit(1).","others).","otherwis","out","out()","output","outsid","overrid","override,","overrideglob","p","p90","packag","package,","package.","package:","packagecom","packagecomments(path","packages(par","packages.","page.","panic","panic(err)","panic.","panic。","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parametergener","parametergenerator)","parametergeneratorparametergener","parameters,","parameters.","parameters:","parent","parent'","pars","parsecom","parsecomments(com","parserequestform","part","partial","pass","patch","path","path(\"message\",","path(key","path(nam","path(path","path).observe(elapsed)","path,","path.","path:","pathnod","paths:","path,query,header,form,file,bodi","pattern","paymentrequir","peopl","performant,","philosophi","pkg","pkg/api","pkg/apis/modifi","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","pkgpath","place","playground/validator.v9","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","playground/validator,提供了用于生成","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","po","point","pointer","pointer.","popular?","port","port\"`","port()","port(port","port.","pos.","posit","post","pprof","pprof,","pr","practic","pre","preconditionfail","preconditionrequir","predefin","prefab","prefab。","prefab。启用之后,所有业务函数的第一个参数必须是","prefab,即","prefab,名称为","prefix","prefix\")","prefix\",","prefix,","prefix:","prefix,那么","present","prevent","previou","printer","prior","prioriti","priority()","privat","process","produc","produce(w","produce.","produceallifproducesisempti","producenoneforhttpdelet","producerconsum","producers,并且他们的行为和","producers:","producer。","producer,即允许响应体为空。","producer:","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","project\")","project.register(root)","project:","prometheu","prometheus,提供了一个","propos","provid","proxyauthrequir","put","put()","put(in","put(inst","putinterfac","putinterface(ifac","qualifi","queri","query(\"count\",","query(key","query(nam","query,head","quick","quit","r","random","read","readable.","reader","reader.","readme.md","ready,","reason","reason,","reason.","reason。","reason,方便客户端判断错误类型。","recal","receiv","recommend","recommended.","recovered.","redirecttrailingslash","refer","reflect","reflect.kind","reflect.structtag","reflect.typ","reflect.type)","regexp","regexp.mustcompile(`^[","regexp:","regexp:[a","regexpnod","regexpnode.","regiser.","regist","register([]def.descriptor{{","register(root","registerconfiginstaller(ci","registerdestinationhandl","registerdestinationhandler(handl","registerparametergener","registerparametergenerator(gener","registerprefab()","registri","registries\")","regular","relat","relationship","replac","replacement:","repli","repo","report","req","req.header.get(\"cont","req.url.path","request","request()","request(method","request)","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestedrangenotsatisfi","requestentitytoolarg","requestexecutor","requestheaderfieldstoolarg","requestid(en","requestidkey(key","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests.","requests:","requesttimeout","requesturitoolong","request。config","requir","resourc","resource,","resource.","resp","respons","response.","responsewrit","responsewriter()","responsewriterresponsewrit","responsewriter。可是使用","rest","rest.newclient(cfg)","result","result\",","result.","results,","results.","results:","results。其中","retriev","retrun","return","return.","rewrit","rfc","right.","root","root.addcommand(newinitcommand())","root.execute();","rout","routepath()","router","router.","routingchain","routingchain)","routingchain.continue()","rule,","rules:","run","run(cmd","run.","run:","runtimeimag","same","satisfi","scheme","scheme.","scheme:","schemes:","scope","scratch","second","see","seen","segment.","select","send","sens","sent.","separ","sequenc","serial","serv","serve()","serve=\":8081\"","server","server\",","server,","server.","servic","service!","service.","service.builder,","service.contextprefab。这个","service.httpcontextfrom(ctx)","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","service.servehttp()","service/rout","service;","services.","serviceunavail","set","set(key","set(nam","set.","setdefaultlogger()","sethook","sethook(hook","setlogg","setlogger(logg","setmodifi","setmodifier(m","settings:","sever","severity.","severityerror","severityfat","severityinfo","severitywarn","short","short:","shortflag","show","shown","shut","shutdown","shutdown(ctx","shutdown,","signatur","signature:","signatures)","silentlogg","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","site","situation.","sleep","slice,","small","smoothli","snippet","someapi","somedefinitions,","somefunction()","somemiddlewar","somemiddlewares,","someth","something.","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","sourc","source()","source,name[,default=value]","source.","source:","sourceaddr(en","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","source。其他的","source:path,query,header,form,file,body,auto,prefab。","spam","span","span.","spec.","spec.infoprops{","special","specially.","specif","specifi","specification:","specified,","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starting.","starts.","starttim","static","statu","statuscod","statuscode()","stderr","stdlogger。可以通过","stdout","step","still","store,","store.","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","stream","stream\"","string","string(tag","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","stringnod","stripped.","strongli","struct","struct\",","struct(inst","struct,","struct.","struct:","structfield","structs,","structur","structure\",","struct{}","stuff","sub","submatches.","subsequ","succeess","success","success\",","such","suffix\")","suffix\",","summari","summary:","support","support,","support.","sure","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","swagger","swagger,","swagger.json","switch","symbol","system","tabl","table:","tag","tag()","tag.","tags.","tag。","take","target","target.","tbd","teach","teapot","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","the/rest/path","then,","therefor","therefore,","this:","though","three","time","time,","time.dur","time.duration.","time.millisecond)","time.now()","times,","tire","titl","title:","tl","tls(certfile,","to:","todo:","token.pos)","toolchains\",","toomanyrequest","total.","touch","trace","tracer","tracing,","translat","treat","tri","true,","true,那么除了设置当前","two","type","type\"","type\"),","type\"`","type()","type.","type.fieldbyindex.","type:","typenam","typenameinvalid","types.","types.go","types:","type为了能让","typic","u","uint","uint(tag","uint(value),","uint)","uint*,","uint.","uint16","uint16(tag","uint16)","uint32","uint32(tag","uint32.","uint64","uint64(tag","uint64.","uint8","uint8(tag","uintptr","unambigu","unauthor","unavailableforlegalreason","under","understand","unimport","uninstal","uninstall(build","uniqu","unix","unless","unlik","unmarsh","unprocessableent","unsupportedmediatyp","until","up","updat","upgrad","upgraderequir","upper","url","url:","urlencod","urlencoded\"","us","usability.","usag","usage.","use,","use.","use:","used.","user","user,","usual","usually,","util","v","v(level)","v.","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","v2","valid","valid.","validate(cmd","validate(nam","validate(object.(*object));","validate(target","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation)","validation,","validation.","validation:","validator'","validator.","validator.int(\"min=1\"),","validator.int,","validator.newcustom(","validator.str","validator.uint(\"min=1\"),","validator:","validatorforanobject","validators,用于","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","values.","var","var,","variantalsonegoti","vc","velocity.","vendor","vendor。","verb","verb,","verbos","verboser,","verboser.","veri","verifi","version","version(vers","version.go","version:","versions:","via","via:","view","viper","w.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","way","ways.","we'll","we'v","wealth","well","well.","whether","whole","within","without","won't","works!","works:","world!\",","wrapper","wrapper.","write","writeheader()","writeheader().","writer.","written","wrong","wrong,","wrong.","www","x","xml.marshal","xml.unmarsh","yaml","you'll","you'v","you:","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","{...)","{...}","{executablefilepath}/","{executablefilepath}/config/","{return","|","}","})","}),","},","}...)","↑","↓","│","└──","├──","。","一个创建命令的私有函数","一个基本的插件框架如下:","一个表示当前命令的所有参数的","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","一致的","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","一般情况下,我们使用最新版本的","一般情况下,插件应该通过插件","一般情况下,用户会使用这个全局的容器。","上","上添加一个中间件用于提取","上的中间件,用于打印所有路由匹配成功的请求的日志。","下查看启用的","下面用一个例子来说明这几个节点:","不能满足实际的业务需求,可以通过","与","与业务函数的参数名称无关。","且成功匹配的情况下,中间件的执行按照","业务函数","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","业务函数返回结果如何放到请求的响应中。","业务方法:","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","两个服务项目。","中","中。","中一类特殊的","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中也提供了直接打包成镜像的命令:","中传递","中使用","中创建","中创建实例并通过","中包含","中包含了两个组件功能实现了","中包含了许多实现了","中可以看到","中定义。api","中定义的动作以及对应的","中实现的唯一一个","中打印表格的功能。","中提供了","中携带","中添加","中添加插件配置。","中的公开字段根据一定的规则(规则参考上面的注释)从","中间件","中间件不应该修改","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件接口如下:","中间件添加在","中):","中,context","中,不能在任何子目录下使用","中,业务函数是","中,存在一些","中,我们也经常看到使用数字","中,我们建议所有的","中,所有的","中,提供了","中,每一个","中,目前包括三个命令:","中,都有一组","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","中,错误需要实现","中:","为","为了保证业务与","为了方便使用,nirvana","为了演示这个过程,我们逐步构建这个项目。","为所有","为所有的","为空的","为被替换为","主要是以","之上,构建了","之前。","之前使用。","之前,需要知道以下几件事情:","之后,编译运行。然后访问","之后,通过","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","也在当前包中。如果需要对配置进行扩展,增强","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","也就是说,业务可以完全不依赖框架。","于","于是","介绍","从","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","从请求中获取数据。","从请求的那一部分取得数据,然后传递给业务函数。","代码如下:","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","以及插件化功能。","以外,config","以外,还会设置全局的","会从第一个","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","会把对应的","会显得非常冗余。因此","会生成一个完整的","会被由命令","会读取","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","但是一般情况下,我们不应该这样使用","但是为了使","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","使用客户端","使用方法如下:","使用自定义的","使用范例","使用默认的","依赖的结构体都会被提取出来并生成到","保存了一个请求的数据,用","信息。","信息的提取。","修改。","修改一个资源的部分内容","修改器","修改器用于在生成路由之前修改","修改器,请求过滤器,api","值","值。一般情况下可以设置为代码的","健康检查插件","健康检查插件提供一个","先执行。并且执行之后会返回","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","公共部分的构建,而每个","公开给用户使用。于是我们需要给","关闭插件","其中","其他与","其他与具体","具体实例类型","内部,比如一个","准备工作","函数。请参考","函数即可:","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","分别对应","列表的","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","则是将业务函数的返回值转换并写入到响应的","则用于判断一个错误是否是由当前的","则用于构建特定的","则由","则表示请求不应该被继续处理,立刻丢弃。","则负责将业务函数的返回结果写入到响应体中。","则针对单个的业务参数和返回值,可以对值进行验证和修改。","创建","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","创建的项目中,可以在","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","创建,用来表示每一个","删除一个资源","到命令中","到自己的账户下,然后下载源码到本地开发目录中:","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","前缀路径","剩余路径类型节点","剩余路径类型节点:","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","功能,并提供了从","加上","加上一些附加属性,用来表示返回的错误码等信息。","加上空的","包","包中存在三个概念,分别是","包中对","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中):","包中,可以看到","包中,提供了如下功能:","包之间的依赖关系:","包介绍","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包会从以下文件列表中读取配置文件:","包依赖了","包则是利用了","包利用","包包含","包包含了","包包含多个工具用于","包和","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包实现了框架","包实际上都是利用了","包帮助用户快速构建项目。","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包提供了一个","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包提供了一个简单的","包提供了一系列的方法帮助用户快速生成用于校验参数的","包提供了一组基础的日志","包提供了工具方法用于将转换函数包装成","包提供了相应的工具用于注册用户自己的","包提供的","包提供的数据结构生成","包提供的方法注册自定义的","包提供的方法进行注册:","包是一个全局实例容器,每种类型对应一个实例。","包有一个默认的","包来说就简单很多了,这个包里包含一个","包注册指标。采集端可以通过","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包的","包的依赖,可以自行实现错误包,只要产出的错误符合","包的入口是","包的实现基于","包的插件能力:","包相对","包类似于标准库的","包读取源码并生成","包路径:","包还提供了一个全局的","包还提供了方法用于创建自定义验证器:","包进行","包进行路由构建和匹配。","包里提供了一个","包除了包含对","包,但是提供了方法用于生成格式化的错误和错误判断。","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于分离实例的创建和","包,用于读取项目源码,并生成与","即创建了","即可。","即可得到返回结果:","即可查看文档。","去读取指定路径的源码,然后从中找到标记了","去读取数据并进行类型转换。","参数值来源于","参数值来源于当前","参数名称,作为","参数和返回值定义","参数描述","参数来源","参数的类型转换和数据验证。","参考了","取得返回值,反序列化成","变更。","另外","只使用","只能生成","只需要将业务函数对应位置的","可以不同。","可以在","可以构建带有","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","可以读取源码,获取结构对象和注释信息。","可以通过","可能不能满足实际使用需求。因此","可被","同等级别的字段","名称","名称为","后通过","启动时会打印出","启用","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件后,可以直接向","启用插件并使用默认配置","命令","命令为例,说明单个命令的基本结构:","命令启动容器,然后进行访问:","命令对应的包在","命令就可以完成编译工作:","和","和一个使用了","和业务函数的参数一一对应,而","和插件系统。这个包放置在根目录中是因为这个包是","和相应的功能。","和端口。","和第三方功能的扩展)。","和返回值的","和配置读取,为","因为只获取一条消息,此处为","因此在","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在","在一个","在一个请求路由匹配成功后,nirvana","在上面的定义中,存在两个额外功能:","在上面的路径节点中,每个节点都可以绑定一个","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在业务的实际场景中,默认提供的","在使用","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在完成了","在完成修改并提交到自己的","在实现一个自定义的","在实际的业务中,http","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在常见的商业","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在接收到","在整个","在服务启动之后,可以通过浏览器或者命令行访问","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","在每个","在没有","在设计上与现存的一些","在运行过程中使用的","在这个包中,主要包含三个概念:config,cli","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","在需要发布的时候,通常需要打包成镜像的形式,在","在需要生成","在项目的","地址。","基本结构如下:","基础类型的转换器这些转换器一般是用于将请求里的","基础类型,结构体类型和自定义类型。目前验证方法基于","处理框架:","多客户端整合","多客户端整合。","大版本的兼容性。即使用","大部分字段与","如下:","如果","如果以下路径都添加了中间件:","如果希望对","如果接收类型是","如果有多个","如果服务正常,则","如果类型符合","如果能返回一个","如果设置了","如果读取到配置文件,那么除了使用","如果需要新增命令扩展","如果需要给字段设置默认值,则需要使用","字段中,可以在客户端使用","字段无效","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","存在优先级,优先级高的","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","完全匹配。","完成","定义","定义。","定义了","定义了一个返回","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义的无关性,nirvana","定义相关的代码都在这个目录中","定义,再对应业务函数:","定义,可以修改或删除","定义,然后由","定义,用于描述","定义:","实例","实例。","实现了","实现了这个接口后,通过","实现的","实现,帮助用户快速构建名为","实际上是一个","实际上是调用的","实际上要填写的部分就是只与自身业务相关的信息。modifi","客户端。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","容器如下:","对于","对于不需要输出日志的场景,使用","对于中间件而言,处理完当前的任务之后只需要调用","对于没有","对于结构体类型,在需要的字段上添加名为","对于这种错误,都会以","对应","对应一个","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","将","将数据写入到响应。","将框架传递给它的与请求绑定的","将类型转换为字节数据写入到响应体中。","将返回值转换为字节写入响应中。在","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就无效。如果","就能够看到","就足够了。但是为了让错误能够以","尾部是不是存在","工作流程","帮助用户把实例方法转换为","并且会检查最后一个","并使用","并成为","应该返回","开发工具介绍","开发的情况下,需要保持对","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","快速生成","性能分析插件","性能分析插件添加与","成功状态码","我们建议","或","或域名,可以有多个","所有与","所有的","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","执行","执行完成之后,请求也处理完成了。","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","扩展了","指定其他输出目录(目前仅支持生成","接下来以","接下来我们给项目增加一个","接口。swagger","接口。其中","接口。即:","接口。如果实现了,就会以","接口。用户在","接口即可。","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","接口如下(这个接口并没有显式定义在","接口如下:","接口实例类型","接口实现了请求跟踪机制,会在","接口或者是","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","接口,可用于针对单个参数或返回值进行验证和修改:","接口,用于创建具有一类特征的","接口:","接收配置以外,还可以通过一些帮助方法获取配置:","描述","描述。所有的","描述符","描述符。构建完成的","提交代码。","提供了","提供了一个命令用于从项目中生成文档:","提供了一个新的接口:","提供了两种类型的","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","提供了多个方法用于设置生成服务需要的日志,definit","提供的","提供的一些","提供的用于生成","插件","插件实现了这个接口之后,即可通过","插件接口的插件。","插件接口:","插件提供了一个函数接口:","插件机制","支持良好,因此在","数据。","数组包含了这个路径下的所有定义。","整合客户端","文件","文件中,方便客户端使用。","文档","文档。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","文档和客户端。","文档截图如下:","文档生成和客户端生成会依赖这个配置文件进行","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法","方法。","方法。clone","方法。比如某个","方法一","方法二","方法包","方法包。","方法安装插件。","方法就应该是","方法用于在对","方法用于安装","方法用于直接创建出","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","方法获取类型,","方法获得","方法返回,因此这两种类型没有对应的方法。","方法都是语义层面的,为的是提高","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","方法,这个方法是一个抽象方法,用于描述一种行为(比如","无","时候,使用","时,使用","是","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","是一个着重于提高开发效率和业务解耦的","是一个短语,用于描述这个","是一样的。","是业务函数返回值处理器,通过调用","是从","是具体要验证的类型,不能使用接口。","是否由这个错误工厂生成。","是基础包,分别负责日志基础接口和错误处理基础接口。","是对","是由服务端生成而不由客户端提交,error","是真正的参数生成器,通过调用","是返回一个资源列表的,那么","是链式调用的,也就是说上一个","暴露","更新一个资源(幂等)","有","有关的所有数据结构,产出的结构可用于生成文档和客户端。","有关,因此如果多个","有时候默认的验证器不能覆盖复杂的验证需求,因此","服务。","服务。因此","服务使用的协议,只能填写","服务启动提供了命令行支持。","服务用于访问这个文档。打开浏览器,访问","服务配置的特殊性,config","机制,允许在","机制,可以在收到一个请求的时候,立刻进行处理。并根据","机制,用于单独配置每一项信息:","来启用插件,并且将插件","来唯一确定一个错误","来提供","来标志的错误。但是数字","来生成","来生成一个能够处理当前的路由上下文的","来自于服务端本身。","来表达这些配置:","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","构建","标准接口如下:","根命令中,比如:","根据上面的","根据资源唯一","框架。","框架不同,它的核心目标是让业务与框架隔离。","框架中处于最高优先级。filter","框架会为每个请求构建这样的","框架的","框架的设计核心思想是:隔离","框架设计概览","概念","概览","模式后,level","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","正则表达式,用于匹配路径","正确实现","此时","此时在","每个","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","每种","比如设置","没有太大区别:","注册","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","注册需要的","注意,get()","注意:oper","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","注:如果在","注:这个","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","测试以外,还需要使用","添加","添加到","添加成功后,所有前缀匹配","然后创建两个服务项目(仅用于演示):","然后在","然后就可以直接使用命令创建项目(请确保","然后编译运行,访问","版本信息插件","版本信息插件提供一个","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","状态码作为基础的:","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","生成","生成。","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","生成代码","生成代码:","生成代码:","生成匿名函数:","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","生成客户端","生成的客户端代码如下:","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","生成的客户端是版本化的,版本在","生成,客户端代码生成,项目结构生成。","生效之前,对","用于传入参数输出一个真正的错误。","用于传递请求的上下文。context","用于分析源码的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于将请求体中的数据转换为业务函数需要的类型,而","用于描述一个业务函数的参数的来源和默认值。","用于文档和客户端生成","用于暴露服务端指标。","用于构建","用于检查服务是否正常。","用于生成一个匿名函数,生成的函数的签名没有方法的","用于生成业务函数的参数的","用于真正发起请求,并完成","用于表示代码注释的","用于访问","由","由于","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的两个方法:","的主要命令,利用","的使用方法和普通","的入口包。","的兼容性。","的功能,需要按照上述结构进行开发。","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的参数与返回值。","的参数和返回值中,尽量避免使用其他接口。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的各个组件也是依据这个基本法设计的。在","的命令行和其他依赖工具:","的响应,响应体为:","的基础类型,供业务函数使用。//","的填充。","的字段。","的字段。忽略所有没有","的定义。","的定义以外,还提供了一些函数,帮助快速构建","的实例而不是","的客户端:","的对应关系。","的工具","的开发工作后,我们需要将","的形式。","的形式判断一个","的形式向","的形式向客户端返回,我们还需要给","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的情况下,nirvana","的数据来源都是来自于请求,而","的文件用于把当前的命令加入到","的方式有两种:","的方法与","的方法:","的最后一个返回值加上","的最小值为","的格式满足:","的注册方法即可注册","的版本号。下表中展示了","的用户提供一个文档,方便用户阅读。nirvana","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的示例:","的第一个参数添加上名为","的结构体类型,会递归遍历以寻找带有","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的请求都会执行这个中间件。","的调用者。这样就完成了对一个项目的","的路径上。","的运行,只用于描述项目的信息以及区分不同版本的","的返回值会作为下一个","的返回值作为","的返回值作为数据返回。","的返回值来确定是直接丢弃该请求还是继续处理。","的返回结果。","的返回结果,构建出相应的客户端和文档。golang","的配置文件在根目录的","的配置,用于创建","的错误)。","的除了","的需要的包定义文件","的顶级包,而且其依赖的所有包只来自","的项目结构如下:","的顺序。","监控指标插件","监控指标插件基于","目前","目前客户端生成对接口的支持还不完善,仅仅对","目前支持三种类型的验证,分别对应","目录下生成","目录中就能看到编译后的二进制文件,直接运行:","目录:","直接编译运行","相关接口如下:","相关的所有定义和类型信息。api","相关类型:","真正的实例,即","种类型的","空的","端口提供服务。为了防止端口冲突,可以使用","第一种方法带有","第一种方法支持使用","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型","类型。","类型。业务函数的参数也响应的变成了","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型是否和业务函数的参数类型一致。","类型的","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","类型转换为了","类型):","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","系列包","系列包包含:","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","级别的配置,这些配置是针对当前服务的。而对应的","结构体包含了一个具体的","结构体包含具有如下含义的字段:","结构体,可以组合成一个:","结构,然后再返回给","给项目添加一个","统一网关访问","继承的字段","编写,只是为了通过","编译并打包成","编译运行","编译运行后可以得到结果:","而不是","能转换为可读的数据结构,构建了","自动处理数据转换,nirvana","自定义验证器","自身和标准库(config","范例如下:","范例,因此可以直接运行查看效果。","获取一条消息的","获取接口实例:","获取某个实例的方法,之后再在服务启动逻辑里","获取资源","获取资源列表","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","要求每个插件提供一个","设置","设置为","设置接口实例:","设置服务","设置服务名称","设置服务版本号","设置服务的描述","设置监听的","设置监听的端口。","设置请求","设置路径前缀,默认值为","访问","证书和密钥。","识别的错误,但是如果业务逻辑中如果不希望引入对","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","该命令默认会在","详细描述这个","说明了请求和响应中的数据类型。为了根据","请求。","请求中使用的都是","请求中,content","请求日志插件","请求日志插件会添加一个在","请求的","请求追踪插件","请求追踪插件基于","读取源码并进行分析,产出","调用,可以生成客户端以供使用:","负责一种类型的参数的验证和类型转换工作。","负责一种类型的返回结果的数据转换工作。","路径","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径匹配完成后,会调用匹配链的最后一个节点的","路径同等级别的字段","路径替换,因此需要正确设置版本规则。","路径默认为","路径,默认值为","路由和处理的所有功能。","转换为路由需要的数据结构,涉及到以下内容:","转换函数必须符合","输出日志如下(项目路径和日志时间会有所不同):","过滤器","过程。也就是可以在声明","返回","返回值可以是任意结构,自动转换并写入到","返回值目标","返回出去,供业务函数使用。//","返回回去。","返回服务当前是否健康。api","返回服务的版本信息。api","返回的是资源数组,所以使用","还会将","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这两种方法都可以创建","这两种类型的请求体,并转换为","这个","这个主要是利用了","这个例子中,验证器要求","这个包并进行命令注册:","这个包方便了用户创建能够被","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个实例方法容器分离了方法的","这个插件暴露三个选项:","这个节点匹配剩余所有路径。","这个过滤器判断","这个过滤器只针对","这个返回值类型必须是","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","这套日志","这就是","这就表示文档生成成功,并且提供了一个","这是一个在","这是一个工具方法,用于快速生成一个参数结构。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","这样做有两个优势:","这样就能够非常方便的错误创建和错误判断了。","这样就能通过","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","这种形式的","这里添加的业务函数都是以","进行了扩展,涉及到字段的改变,也需要在这个包中修改","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行修改。","进行包装的时候,获取正确层级的调用栈信息。","进行开发,但是需要保证两个","进行扩展,需要遵守上面这些规则。","进行描述的。首先看一个","进行注册。然后提供相应的","进行解析。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","选项的注释。两个选项的值对应两个函数,分别返回","通常对应于","通常情况下,我们需要快速添加一些","通常情况下,有","通过","通过具体错误的","那么","那么如果存在请求","部分,例如:","都是通过","都有一个对应的","都通过这个","都遵守","都需要去描述这个参数,那么","配置器机制","配置基本信息以外,还提供了插件机制。","配置文件名:","配置文件,用于描述项目的基本信息和结构。","采集指标数据。","里。","里取值。","里的值进行文本国际化。","里获取的。","针对请求的","链接","错误包","错误类型,必须是","镜像","限制","除了","除了使用","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","除了常规的","除了插件","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。","集合上述所有功能的","需要使用","需要实现接口:","项目","项目。项目结构如下:","项目名[:模块名]:错误名","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","项目,用于保存所有服务的客户端:","风格,并且在","首先会利用","首先创建","首先看","首部有没有","验证器函数必须符合签名","默认值","默认启用的","默认情况下,nirvana","默认情况下,我们会为每个服务生成如下结构的客户端:","默认情况下,插件会添加四个","默认提供了","默认提供的","默认路径为"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"\n\nTable of Contents generated with DocToc\n\nNirvana\nInstallation\nGetting Started\nAPI quick start\nValidate it!\nIs it popular?\nShow me the doc\n\n\nUser Guide\nAPI Descriptor\nConsumes and Produces\nMiddleware\nAPI Definition\nParameter\nResult\nValidation\nOpenAPI\nConfigurer\nError\nLogging\nPlugins\nMetrics\nProfiling\nTracing\n\n\n\n\nDeveloper Guide and Proposals\nProposals\nPlugin framework\n\n\n\n\n\n\nNirvana\nEnglish version of this docs is expired. We will rewrite it in the future. If you have any idea or you want to contribute to this docs, PLEASE let us know it.\nNirvana is a golang API framework designed for productivity and usability. It aims to be the building block for\nall golang services in Caicloud. The high-level goals and features include:\n\nconsistent API behavior, structure and layout across all golang projects\nimprove engineering productivity with openAPI and client generation, etc\nvalidation can be added by declaring validation method as part of API definition\nout-of-box instrumentation support, e.g. metrics, profiling, tracing, etc\neasy and standard configuration management, as well as standard cli interface\n\nNirvana is also extensible and performant, with the goal to support fast developmenet velocity.\nInstallation\ngo get -u github.com/caicloud/nirvana\n\n# for openapi generation\ngo get -u github.com/caicloud/nirvana/cmd/openapi-gen\nGetting Started\nAPI quick start\nIn Nirvana, APIs are defined via definition.Descriptor. We will not introduce details of the concept Descriptor,\ninstead, let's take a look at a contrived example:\n// API descriptor.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Corresponding to the first result\",\n },\n {\n Destination: definition.Error,\n Description: \"Corresponding to the second result\",\n },\n },\n },\n },\n}\n\nThis is an echo server API descriptor. The descriptor is a bit complex at first glance, but is actually quite\nsimple. Below is a partially translated HTTP language:\nHTTP Path: /echo[?msg=]\nHTTP Method: Get\nHTTP Headers:\n Content-Type: Any Type\n Accept: text/plain or */*\nThe request handler Echo receives two parameters and returns two results, as defined in our descriptor.\nNote the first parameter is always context.Context - it is injected by default config.\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNirvana will parse incoming request and generate function parameters for Echo function as defined via\nDefinition.Parameters - parameters will be converted into the exact type defined in Echo. Once done,\nNirvana collects the results and sends back response.\nWith our API descriptors ready, we can now create a server to serve requests:\npackage main\n\nimport (\n \"context\"\n\n \"github.com/caicloud/nirvana\"\n \"github.com/caicloud/nirvana/definition\"\n \"github.com/caicloud/nirvana/log\"\n)\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(nirvana.Descriptor(echo))\n log.Infof(\"Listening on %s:%d\", config.IP(), config.Port())\n if err := nirvana.NewServer(config).Serve(); err != nil {\n log.Fatal(err)\n }\n}\n\nNow run the server and test it:\ngo run ./examples/getting-started/basics/echo.go\nINFO 0202-16:34:38.663+08 echo.go:65 | Listening on :8080\nINFO 0202-16:34:38.663+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-16:34:38.663+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\ntest\nFor full example code, see basics.\nValidate it!\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :)\n\nFor full example code, see validator. Checkout the source code to see\nhow to add your own validation.\nIs it popular?\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig().\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in milliseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.1\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.2\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.4\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.8\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1.6\"} 28\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3.2\"} 41\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6.4\"} 73\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"12.8\"} 126\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"25.6\"} 260\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"51.2\"} 507\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"102.4\"} 995\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"204.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"409.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"819.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1638.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3276.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6553.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"13107.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"26214.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"52428.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.1\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.2\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.4\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.8\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1.6\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"12.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"25.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"51.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"102.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"204.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"409.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"819.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1638.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3276.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6553.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"13107.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"26214.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"52428.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 55\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 90\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 101\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 3\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\nShow me the doc\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +nirvana:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\nUser Guide\nAPI Descriptor\nAPI Descriptor is the core data structure in Nirvana: it holds all API definitions, and is usually the starting\npoint to write your services with Nirvana. Following is the golang type definition of Descriptor:\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nA single descriptor contains API definitions for a single path. It sets Content-Type to be produced and\nconsumed by the path handler. Each descriptor has an array of children; they will all inherit Content-Type\nfrom the parent descriptor, for example:\ndefinition.Descriptor{\n Path: \"/path\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Definitions: SomeDefinitions,\n Children: []definition.Descriptor{\n {\n Path: \"/child\",\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n },\n },\n}\n\nThe child descriptor is identical to:\ndefinition.Descriptor{\n Path: \"/path/child\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n}\n\nConsumes and Produces\nConsumes and Produces indicate content types that current definitions and child definitions support. Following\nis a table of all supported MIME types and their data types:\n\n\n\nMIME\nConsume\nProduce\nNote\n\n\n\n\nMIMENone\nnil\nnil\nCan be used into Consumes of Get/List and Produces of Delete\n\n\nMIMEText\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEJSON\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEXML\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEOctetStream\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEURLEncoded\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\nMIMEFormData\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\n\nMiddleware\nMiddleware is a convenient mechanism to intercept HTTP requests entering your application. To use middleware\nin Nirvana, just add your middlewaare definition to API descriptor. For example, below is the code snippet for\nmetrics plugin:\nmonitorMiddleware := definition.Descriptor{\n Path: \"/\",\n Middlewares: []definition.Middleware{newMetricsMiddleware(c.namespace)},\n}\n\nfunc newMetricsMiddleware(namespace string) definition.Middleware {\n ...\n\n // This is the middleware function to be called for each request.\n return func(ctx context.Context, next definition.Chain) error {\n startTime := time.Now()\n err := next.Continue(ctx)\n\n httpCtx := service.HTTPContextFrom(ctx)\n req := httpCtx.Request()\n resp := httpCtx.ResponseWriter()\n path := req.URL.Path\n elapsed := float64((time.Since(startTime)) / time.Millisecond)\n\n requestCounter.WithLabelValues(req.Method, path, getHTTPClient(req), req.Header.Get(\"Content-Type\"), strconv.Itoa(resp.StatusCode())).Inc()\n requestLatencies.WithLabelValues(req.Method, path).Observe(elapsed)\n requestLatenciesSummary.WithLabelValues(req.Method, path).Observe(elapsed)\n\n return err\n }\n}\nUsually, Nirvana users do not care about how middlewares are implemented: they only need to find useful\nmiddlewares and add them to their descriptors. But if necessary, writing your own middleware is also quite\nstraightforward, as shown above.\nUnlike Consumes or Produces, middlewares are not scoped within a single descriptor, which means a\nmiddleware for /some/path will impact all paths with prefix /some/path, even though they are in different\ndescriptors. For example:\ndefinition.Descriptor{\n Path: \"/path\",\n Middlewares: SomeMiddlewares,\n}\ndefinition.Descriptor{\n Path: \"/path/child\",\n}\n\nThe two descriptors do not have any relationship but their path have common prefix, i.e. path of the first\ndescriptor is a prefix of the second descriptor. In such case, SomeMiddlewares are also valid for the second\ndescriptor. For more details, check the design doc of router.\nAPI Definition\nAPI definition is another core data structure in Nirvana: it defines all handlers for your services. Following\nis the golang type definition of Definition:\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\nEach descriptor has multiple API definitions, and A single API definition contains handler for a single path\nand method combination. For example, here we define a descriptor to handle endpoint /echo, with two methods\nGet and Create:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: EchoGet,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n {\n Method: definition.Create,\n Function: EchoCreate,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n },\n}\nBelow is a list of all supported methods, as well as its corresponding HTTP method and success status code. By\nconvention, every API method corresponds to a HTTP method and ONE success status code. If an API function\nreturns no error, Nirvana will return the success status code.\n\n\n\nMethod\nHTTP Method\nSuccess Status Code\n\n\n\n\nList\nGET\n200\n\n\nGet\nGET\n200\n\n\nCreate\nPOST\n201\n\n\nUpdate\nPUT\n200\n\n\nPatch\nPATCH\n200\n\n\nDelete\nDELETE\n204\n\n\nAsyncCreate\nPOST\n202\n\n\nAsyncUpdate\nPUT\n202\n\n\nAsyncPatch\nPATCH\n202\n\n\nAsyncDelete\nDELETE\n202\n\n\n\nParameter\nParameter describes corresponding handler parameters of an API definition. Your request handler will receive\nthe exact number of parameters, with the same index as defined in your API definition. Note most of the times,\nyou will start your service using nirvana.NewDefaultConfig(), which adds request context as the first\nparameter. Therefore, parameters defined in descriptor appear in the second parameter of your request handler.\nFor example, in the following example, our endpoint /echo has two query parameters, and our handler Echo\nreceives three parameters: context, msg1 and msg2.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg1\",\n Description: \"First message to echo\",\n },\n {\n Source: definition.Query,\n Name: \"msg2\",\n Description: \"Second message to echo\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Result to return if success\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg1 string, msg2 string) (string, error) {\n return msg, nil\n}\nBelow is the golang type definition of Parameter:\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\nSource is the source of a parameter, and Name is the key of Source.\n\n\n\nSource\nDescription\n\n\n\n\nPath\nValue from URL path\n\n\nQuery\nValue from URL query string\n\n\nHeader\nValue from HTTP request header\n\n\nForm\nValue from HTTP body. Content-Type must be \"application/x-www-form-urlencoded\" or \"multipart/form-data\"\n\n\nFile\nValue from HTTP body. Content-Type must be \"multipart/form-data\"\n\n\nBody\nValue from HTTP body. Parameters of this type don't need a name\n\n\nAuto\nData receiver must be a struct. Parameters of the type don't need a name.\n\n\nPrefab\nValue from internal method. See Advanced Usage\n\n\n\nThe source Auto is for combining fields in a struct:\n// Here is an example for `Auto` struct.\n// The struct has some fields. Every field has a tag with name `source`.\n// The source should obey the format:\n// Source,Name[,default=value]\n// `Source` and `Name` are the same as before.\n// `default` is optional. its value should be basic data type (bool, int*, uint*, float*, string).\ntype Example struct {\n ID int `source:\"Path,id\"`\n Start int `source:\"Query,id,default=100\"`\n Tenant string `source:\"Header,X-Tenant,default=test\"`\n}\n\nIf you have lots of fields from a request, you can use Auto with a struct to get values from request.\nDon't use it when you only have a few parameters: separated parameters is more readable.\nAll values from HTTP request are string. Nirvana has a mechanism to convert strings to specific types for\nAPI function. The behavior is customizable via operator, which allows you to modify input request. In case\nthere is custom operator, input request will be converted to parameter type of the first operator. Here is\nthe data flow for a parameter:\n\n\nIf Data is empty and Parameter.Default is not nil, default value is used as Typed Data .\nResult\nResult is similar but simpler than Parameter. Its Destination indicates the target to write data. Just\nlike Parameter, we can modify output response via operator; the final returned type will be the return\ntype of the last operator.\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n\n\n\nDestination\nDescription\n\n\n\n\nMeta\nIndicates the value should be written to HTTP response header. Its type must be map[string]string\n\n\nData\nIndicates the value should be written to HTTP response body. The format is decided by HTTP Accept and Definition.Produces\n\n\nError\nIf an error occurs, Meta and Data is ignored. Error message will be written to HTTP response body\n\n\n\nValidation\nValidation is used to validate request input, including request body, query parameter, etc. In Nirvana,\nvalidation is implemented as a parameter operator, so it naturally has access to all request attributes.\nThere are three categories of validation: Var, Struct and Custom, where Var is used to validate basic\nbuilt-in types like string, int, bool, etc; Struct is for struct validation and Custom is for writing\ncustom validation.\nFor Var validation, simply add the validation operator including the type to validate. For example, the\nfollowing example shows a validation used to validate input string length is longer than 10 characters.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNote we are using Validator.String here since our API handler takes string as input. As an other example,\nif we want to validate input parameter is a number larger than 10, we should use:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Int(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg int) (string, error) {\n return strconv.Itoa(msg), nil\n}\n\nHere we've changed validator to validator.Int, and API handler has input parameter int.\nFor Struct validation, the first step is to add a validate tag to our struct, e.g.\n// Message defines the message to echo and to whom the message will be sent.\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nThen, similar to Var validation, we need to add an operator to our API descriptor. A struct instance is\nrequired for Nirvana to make sure the type to validate actually matches handler parameter type.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Create,\n Function: EchoV2,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Body,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Struct(&api.Message{})},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc EchoV2(ctx context.Context, msg *api.Message) (string, error) {\n return msg.Message, nil\n}\n\nFor Custom validation, you'll write your own operator and use it in API descriptor. The operators/validator\npackage contains helper funtions to create custom validator. For example, the following example uses custom\nvalidation to validate the input request body. Nirvana will convert input request to validator's parameter\ntype.\nOperators: []definition.Operator{\n validator.NewCustom(\n func(ctx context.Context, body *Body) error {\n if body.Name == \"\" {\n return errors.BadRequest.Error(\"you should have a name!\")\n }\n if body.Name != \"nirvana\" {\n return errors.BadRequest.Error(\"name ${name} must be nirvana!\", body.Name)\n }\n return nil\n },\n \"validate your name\"),\n},\n\nOpenAPI\nNirvana can generate OpenAPI 2.0 document from code simply.\nIn the example, swagger will be generated by builder of OpenAPI spec. \nThere are two parts of the code, one is meta info and the other is the generated function GetOpenAPIDefinitions\n// swagger is the struct which can be encoded into whole OpenAPI document\nswagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\n\nGetOpenAPIDeinitions is generated from Go types you defined. \nAdd tag +nirvana:openapi=true to the doc.go file in package of api types just like the follow code\n// +nirvana:openapi=true\npackage api\nAnd run cmd to generate the function GetOpenAPIDefinitions.\nIf input(-i) packages are more than one, comma-separated list can be used.\nopenapi-gen \\\n -i /go/package/to/your/types \\\n -p /go/package/to/your/generated/function\nYou can output the documents in json format by json encoder(or yaml format by yaml encoder)\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\nYou can also serve the documents in an OpenAPI endpoint, e.g. /v2/openapi.\nNOTICE: Don't add openapi descriptor into the descriptor passed to the builder.\nvar openapi = definition.Descriptor{\n Path: \"/v2/openapi\",\n Description: \"OpenAPI endpoints\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: OpenAPI,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"OpenAPI documents struct\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\nfunc OpenAPI() (*spec.Swagger, error) {\n swagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n ...\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n }\n return swagger, err\n}\nConfigurer\nNirvana has a mechanism to set partial options into config. Here is an example mentioned above:\nconfig.Configure(nirvana.Descriptor(echo))\n\nIn the example, nirvana.Descriptor returns a configurer and the configurer will install descriptors into nirvana config.\nThere are some inside configurers in the table:\n\n\n\nConfigurer\nDescription\n\n\n\n\nIP\nSet listening ip. Defaults to \"0.0.0.0\"\n\n\nPort\nSet listening port. Defaults to 8080\n\n\nLogger\nSet custom logger\n\n\nDescriptor\nAdd API descriptors\n\n\nFilter\nAdd request filters\n\n\nModifier\nAdd definition modifiers\n\n\n\nPlugins should also use configurers to configure plugins. For more details, see also Plugins\nError\nIn Nirvana core, error always means HTTP status code 500 - we try to avoid adding busniess logic into Nirvana.\nThat is, for error code other than 500, you are responsible to write your own error implementation, which only\nneeds to satisfy the following interface:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nAn error contains status code and error message. Package github.com/caicloud/nirvana/errors provides standard\nerrors implementation and many helper functions. For example:\n// Example 1:\n// Directly create an error.\n// Fields (e.g. ${customer}) in format correspond to args (e.g. customer.Name) in order.\nerrors.NotFound.Error(\"${customer} not found\", customer.Name)\n\n// Example 2:\n// Create an error factory at first.\nvar CustomerNotFount = errors.NotFound.Build(\"Project:Customer:CustomerNotFount\", \"${customer} not found\")\n// Then create error by factory.\nCustomerNotFount.Error(customer.Name)\n// You can check if an error is derived by specified factory.\nif CustomerNotFount.Derived(err) {\n // Do something.\n}\n\nUse interface errors.Error in function signature is strongly discouraged. You should always use standard\nerror interface and create errors by the methods referred above.\nLogging\nNirvana provides a default logging implementation, the API mirrors glog.\nFollowing logging methods are provided with increasing severity.\nInfo\nWarning\nError\nFatal\nKeep in mind that:\n\nEach level comes with formatter and newliner method, i.e. Infof and Infoln\nInfo has verbosity level, for example, you can use log.V(4).Info for unimportant logs\nFatal error will terminate program execution\n\nFor more details, see github.com/caicloud/nirvana/log package.\nPlugins\nMetrics\nThis plugin provides a lot of metrics with standard prometheus format. You can simply\nenable it via:\nconfig.Configure(metrics.Default())\n\nThe plugin will register a middleware and a descriptor into your nirvana server, installing metrics at endpoint\nhttp://host:port/metrics.\nThere are two config knobs in the plugin:\n\nNamespace: Metrics namespace is the prefix of all metric names. Defaults to nirvana.\nPath: Path is the descriptor path. Users can get metrics by the path. Defaults to /metrics\n\nYou can use following two configurers to change the settings:\n\nmetrics.Namespace(ns string): The function can modify metrics namespace.\nmetrics.Path(path string): The function can modity metrics descriptor path.\n\nFor more information about installed metrics, please check Prometheus Doc.\nProfiling\nThis plugin provides capability to install pprof into nirvana server, which is a direct reflection of golang\nstandard library net/http/pprof.\nYou can install the plugin via:\nconfig.Configure(profiling.Path(\"myprof\"))\n\nThen the plugin handles requests for the following paths:\n\n\"/myprof\": Show profiling index page.\n\"/myprof/profile\": Show cpu profile page.\n\"/myprof/symbol\": Show symbol page.\n\"/myprof/trace\": Show trace page.\n\nThe plugin has two configurers:\n\nPath(path string): The function can change profiling descriptor path. Defaults to /debug/pprof\nContention(enable bool): Use to enable contention profiling. Defauts to false.\n\nFor more information about pprof, please check PProf Doc.\nTracing\nTBD\nDeveloper Guide and Proposals\nProposals\n\nkickoff\nframework\n\nPlugin framework\nFollowing is a framework for writing nirvana plugin. All aforementioned built-in plugins are written with the\nframework: they are the best reference implementations if you ever want to draft a new plugin.\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\nThen user can use the plugin by:\nimport \"/path/to/plugin\"\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(plugin.ConfigA(fieldValue))\n}\n\n"},"guides/project.html":{"url":"guides/project.html","title":"项目结构和初始化","keywords":"","body":"项目结构和初始化\n创建项目\nNirvana 创建项目非常简单,不过在创建项目之前,首先需要下载安装 Nirvana 的命令行和其他依赖工具:\n$ go get -u github.com/caicloud/nirvana/cmd/nirvana\n$ go get -u github.com/golang/dep/cmd/dep\n然后就可以直接使用命令创建项目(请确保 $GOPATH/bin 在 $PATH 中):\n$ cd $GOPATH/src/\n$ nirvana init ./myproject\n$ cd ./myproject\n此时在 $GOPATH/src/myproject 会生成一个完整的 Nirvana 项目。项目结构如下:\n .\n├── bin # 存放编译后的二进制文件\n├── build # 存放项目的 Dockerfile 以及与构建相关的文件\n│ └── myproject # \n│ └── Dockerfile #\n├── cmd # 存放项目的启动命令\n│ └── myproject #\n│ └── main.go # \n├── Gopkg.toml #\n├── Makefile #\n├── nirvana.yaml #\n├── pkg # 所有的业务逻辑都应该在这个目录中\n│ ├── apis # 所有与 Nirvana API 定义相关的代码都在这个目录中\n│ │ ├── api.go #\n│ │ ├── filters # 存放 HTTP Request 过滤器\n│ │ │ └── filters.go #\n│ │ ├── middlewares # 存放 Nirvana 中间件\n│ │ │ └── middlewares.go #\n│ │ ├── modifiers # 存放 Nirvana Definition 修改器\n│ │ │ └── modifiers.go #\n│ │ └── v1 # 存放项目 v1 版本所有的 API 定义\n│ │ ├── converters # 存放 v1 版本需要用到的类型转换器\n│ │ ├── descriptors # 存放 v1 版本的 API 描述符\n│ │ │ ├── descriptors.go #\n│ │ │ └── message.go # 对应 message 业务逻辑的 API 定义,可以修改或删除\n│ │ └── middlewares # 存放 v1 版本需要用到的中间件\n│ │ └── middlewares.go #\n│ ├── message # 业务逻辑目录,这个目录是生成的样板,可以修改或删除\n│ │ └── message.go #\n│ └── version # 项目版本信息目录\n│ └── version.go #\n├── README.md #\n└── vendor #\n这个项目中包含了编译和构建容器的基本工具(Makefile 和 Dockefile),还有一个 golang/dep 的需要的包定义文件 Gopkg.toml。通过如下命令即可完成依赖包的安装:\n$ dep ensure -v\n到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个 API 范例,因此可以直接运行查看效果。\n编译运行\n直接编译运行\nNirvana 创建项目时自动生成了 Makefile,只需要使用简单的 make 命令就可以完成编译工作:\n$ make\n在项目的 bin 目录中就能看到编译后的二进制文件,直接运行:\n$ ./bin/myproject\n启动时会打印出 Nirvana 的 Logo 以及当前项目的版本信息以及监听的端口,默认端口是 8080。\n在服务启动之后,可以通过浏览器或者命令行访问 http://localhost:8080/apis/v1/messages:\n$ curl http://localhost:8080/apis/v1/messages\n就能够看到 API 的返回结果。\n编译并打包成 Docker 镜像\n在需要发布的时候,通常需要打包成镜像的形式,在 Makefile 中也提供了直接打包成镜像的命令:\n$ make container\n就会自动开始在容器内编译和打包镜像。不过这个过程中需要 golang:latest 和 debian:jessie 这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改 ./build/myproject/Dockerfile 。\n打包完成后,可以通过 Docker 命令启动容器,然后进行访问:\n$ docker run -p 8080:8080 myproject:v0.1.0\nNirvana 项目配置\n每个 Nirvana 项目都有一个 nirvana.yaml 配置文件,用于描述项目的基本信息和结构。\n# 项目名称\nproject: myproject\n# 项目描述\ndescription: This project uses nirvana as API framework\n# 服务使用的协议,只能填写 http 和 https\nschemes:\n- http\n# 访问 IP 或域名,可以有多个\nhosts:\n- localhost:8080\n# 项目负责人\ncontacts:\n- name: nobody\n email: nobody@nobody.io\n description: Maintain this project\n# 项目 API 版本信息,用于区分不同版本的 API\n# 用于文档和客户端生成\nversions:\n # 版本名称\n- name: v1\n # 版本描述\n description: The v1 version is the first version of this project\n # 版本规则\n rules:\n # 路径前缀,匹配前缀为 \"/apis/v1\" 的 API\n - prefix: /apis/v1\n # 正则表达式,用于匹配路径\n # 如果设置了 prefix,那么 regexp 字段无效\n regexp: \"\"\n # 这个字段仅用于在生成文档和客户端的时候,替换匹配的 API 路径。为空时不会进行替换。\n # 比如设置 replacement = \"/apis/myproject/v1\"\n # 那么 \"/apis/v1/someapi\" 为被替换为 \"/apis/myproject/v1/someapi\"\n replacement: \"\"\n\n这个配置文件不会影响 Server 的运行,只用于描述项目的信息以及区分不同版本的 API。API 文档生成和客户端生成会依赖这个配置文件进行 API 版本识别和 API 路径替换,因此需要正确设置版本规则。\n"},"guides/api.html":{"url":"guides/api.html","title":"API","keywords":"","body":"API\n概念\nNirvana Definition\n在 Nirvana 中,所有的 API 都是通过 Descriptor 和 Definition 进行描述的。首先看一个 List Messages 的 API 定义:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/apis/v1/descriptors/message.go\n\nfunc init() {\n register([]def.Descriptor{{\n // Path 定义了 API 路径\n Path: \"/messages\",\n // Definitions 数组包含了这个路径下的所有定义。\n Definitions: []def.Definition{listMessages},\n },\n }...)\n}\n\n// listMessages 定义了一个返回 Message 列表的 API\nvar listMessages = def.Definition{\n // 这个 API 返回的是资源数组,所以使用 List 方法。\n Method: def.List,\n // Summary 是一个短语,用于描述这个 API 的用途。这个短语在生成文档和客户端的时候用于区分 API。\n // 这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。\n Summary: \"List Messages\",\n // 详细描述这个 API 的用途。\n Description: \"Query a specified number of messages and returns an array\",\n // 业务函数\n Function: message.ListMessages,\n // 对应业务函数的参数信息。用于告知 Nirvana 从请求的那一部分取得数据,然后传递给业务函数。\n Parameters: []def.Parameter{\n {\n // 参数来源\n Source: def.Query,\n // 参数名称,作为 key 从 Source 里取值。\n // 与业务函数的参数名称无关。\n Name: \"count\",\n // 默认值\n Default: 10,\n // 参数描述 \n Description: \"Number of messages\",\n },\n },\n // 对应业务函数的返回结果。用于告知 Nirvana 业务函数返回结果如何放到请求的响应中。\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n根据上面的 API 定义,再对应业务函数:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/message/message.go\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。\nDefinition Method\n在 Nirvana 中,我们建议所有的 API 都遵守 RESTful 风格,并且在 URL 中携带 API 的版本号。下表中展示了 Nirvana 中定义的动作以及对应的 API 定义。\n\n\n\nNirvana 方法\nHTTP 方法\nHTTP 成功状态码\nURL\n描述\n\n\n\n\nList\nGET\n200\n/apis/v1/resources\n获取资源列表\n\n\nGet\nGET\n200\n/apis/v1/resources/{resource}\n根据资源唯一 ID/Name 获取资源\n\n\nCreate\nPOST\n201\n/apis/v1/resources\n创建一个资源(非幂等)\n\n\nUpdate\nPUT\n200\n/apis/v1/resources/{resource}\n更新一个资源(幂等)\n\n\nPatch\nPATCH\n200\n/apis/v1/resources/{resource}\n修改一个资源的部分内容\n\n\nDelete\nDELETE\n204\n/apis/v1/resources/{resource}\n删除一个资源\n\n\nAsyncCreate\nPOST\n202\n/apis/v1/resources\n异步创建资源\n\n\nAsyncUpdate\nPUT\n202\n/apis/v1/resources/{resource}\n异步更新资源\n\n\nAsyncPatch\nPATCH\n202\n/apis/v1/resources/{resource}\n异步修改资源部分内容\n\n\nAsyncDelete\nDELETE\n202\n/apis/v1/resources/{resource}\n异步删除资源\n\n\n\n对于 Nirvana 异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。\n所有的 Nirvana 方法都是语义层面的,为的是提高 API 定义的可读性。也就是说 List 和 Get 在一个 HTTP 请求中使用的都是 GET,两者没有区别。\n但是为了使 API 定义更加明确,我们应该根据场景确定使用哪个 Nirvana 方法。比如某个 API 是返回一个资源列表的,那么 Nirvana 方法就应该是 List 而不是 Get。\nDefinition Source\nDefinition Source 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n参数来源\n名称\n描述\n\n\n\n\nPath\n有\n参数值来源于 API Path\n\n\nQuery\n有\n参数值来源于 URL Query\n\n\nHeader\n有\n参数值来源于 Request Header\n\n\nForm\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 application/x-www-form-urlencoded 或 multipart/form-data\n\n\nFile\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 multipart/form-data\n\n\nBody\n无\n参数值来源于 Request Body\n\n\nAuto\n无\nAuto 类型对应的参数必须是一个结构体,通过结构体的 tag 定义来确定每个字段的来源\n\n\nPrefab\n有\n参数值来源于当前 server 内部,比如一个 DB 链接\n\n\n\nAuto 类型的 tag 范例如下:\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n}\n\ntag 名称为 source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是 Body 类型名称可以为空。\n如果需要给字段设置默认值,则需要使用 default={value} 的形式。 \n如果有多个 Auto 结构体,可以组合成一个:\ntype AnotherAutoStruct struct {\n ...\n}\n\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n AnotherAutoStruct\n}\n\n对于没有 source 的结构体类型,会递归遍历以寻找带有 source 的字段。忽略所有没有 source 的字段。\nDefinition Destination\nDefinition Destination 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n返回值目标\n描述\n\n\n\n\nMeta\n这个返回值类型必须是 map[string]string,会写入 Response Header\n\n\nData\n返回值可以是任意结构,自动转换并写入到 Response Body\n\n\nError\n错误类型,必须是 error\n\n\n\n给项目添加一个 API\n接下来我们给项目增加一个 API,用于获取一条消息:\nfunc init() {\n register([]def.Descriptor{{\n Path: \"/messages\",\n Definitions: []def.Definition{listMessages},\n }, {\n // 获取一条消息的 Descriptor。\n Path: \"/messages/{message}\",\n Definitions: []def.Definition{getMessage},\n },\n }...)\n}\n\n// 获取一条消息的 API 定义。\nvar getMessage = def.Definition{\n // 因为只获取一条消息,此处为 Get。\n Method: def.Get,\n Summary: \"Get Message\",\n Description: \"Get a message by id\",\n // 业务函数\n Function: message.GetMessage,\n Parameters: []def.Parameter{\n // 这是一个工具方法,用于快速生成一个参数结构。\n // message 是从 API Path 里获取的。\n def.PathParameterFor(\"message\", \"Message id\"),\n },\n Results: def.DataErrorResults(\"A message\"),\n}\n\n对应的业务函数如下:\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n添加 API 之后,编译运行。然后访问 http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是 json 类型):\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n这里添加的业务函数都是以 Golang 函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考 方法包。\n"},"guides/doc.html":{"url":"guides/doc.html","title":"生成 API 文档","keywords":"","body":"生成 API 文档\n在完成了 API 的开发工作后,我们需要将 API 公开给用户使用。于是我们需要给 API 的用户提供一个文档,方便用户阅读。Nirvana 提供了一个命令用于从项目中生成文档:\n$ nirvana api --serve=\":8081\"\n默认情况下,nirvana api 会读取 pkg/apis 并使用 8080 端口提供服务。为了防止端口冲突,可以使用 --serve 设置监听的 IP 和端口。\n该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):\nINFO 0702-15:47:52.010+08 api.go:87 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:47:53.499+08 api.go:95 | Project root directory is /home/go/src/myproject\nINFO 0702-15:47:53.500+08 api.go:179 | Listening on 127.0.0.1:8081. Please open your browser to view api docs\n这就表示文档生成成功,并且提供了一个 HTTP 服务用于访问这个文档。打开浏览器,访问 http://127.0.0.1:8081 即可查看文档。\n文档截图如下:\n\n"},"guides/client.html":{"url":"guides/client.html","title":"生成客户端","keywords":"","body":"生成客户端\n生成代码\nAPI 文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行 API 调用,可以生成客户端以供使用:\n$ nirvana client\n该命令默认会在 ./client 目录下生成 golang 客户端代码,可以通过 --output 指定其他输出目录(目前仅支持生成 golang 客户端,其他语言客户端尚不支持)。\n输出日志如下(项目路径和日志时间会有所不同):\nINFO 0702-15:50:54.156+08 client.go:73 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:50:55.609+08 client.go:81 | Project root directory is /home/go/src/myproject\nINFO 0702-15:50:55.610+08 client.go:106 | Generated golang client package myproject/client\n生成的客户端代码如下:\nclient\n├── client.go\n└── v1\n ├── client.go\n └── types.go\n./client.go 生成代码:\npackage client\n\nimport (\n v1 \"myproject/client/v1\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a versioned client.\ntype Interface interface {\n // V1 returns v1 client.\n V1() v1.Interface\n}\n\n// Client contains versioned clients.\ntype Client struct {\n v1 *v1.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (Interface, error) {\n c := &Client{}\n var err error\n\n c.v1, err = v1.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) Interface {\n return &Client{\n v1: v1.MustNewClient(cfg),\n }\n}\n\n// V1 returns a versioned client.\nfunc (c *Client) V1() v1.Interface {\n return c.v1\n}\n\n./v1/client.go 生成代码\npackage v1\n\nimport (\n \"context\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes v1 client.\ntype Interface interface {\n // GetMessage return a message by id.\n GetMessage(ctx context.Context, message int) (message1 *Message, err error)\n // ListMessages returns all messages.\n ListMessages(ctx context.Context, count int) (messages []Message, err error)\n}\n\n// Client for version v1.\ntype Client struct {\n rest *rest.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (*Client, error) {\n client, err := rest.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n return &Client{client}, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) *Client {\n client, err := NewClient(cfg)\n if err != nil {\n panic(err)\n }\n return client\n}\n\n// GetMessage return a message by id.\nfunc (c *Client) GetMessage(ctx context.Context, message int) (message1 *Message, err error) {\n message1 = new(Message)\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages/{message}\").\n Path(\"message\", message).\n Data(message1).\n Do(ctx)\n return\n}\n\n// ListMessages returns all messages.\nfunc (c *Client) ListMessages(ctx context.Context, count int) (messages []Message, err error) {\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages\").\n Query(\"count\", count).\n Data(&messages).\n Do(ctx)\n return\n}\n\n./v1/types.go 生成代码:\npackage v1\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n生成的客户端是版本化的,版本在 nirvana.yaml 中定义。API 依赖的结构体都会被提取出来并生成到 types.go 文件中,方便客户端使用。\n每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考 多客户端整合。\n使用客户端\n客户端的使用非常简单,只需要创建客户端,然后调用相应的 API 函数即可:\nfunc main() {\n cli := client.MustNewClient(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n限制\n目前客户端生成对接口的支持还不完善,仅仅对 io.Reader 和 io.ReadCloser 支持良好,因此在 API 的参数和返回值中,尽量避免使用其他接口。\n"},"concepts/cp.html":{"url":"concepts/cp.html","title":"Consumer && Producer","keywords":"","body":"Consumer and Producer\n包路径: github.com/caicloud/nirvana/service\n在 HTTP 请求中,Content-Type 说明了请求和响应中的数据类型。为了根据 Content-Type 自动处理数据转换,Nirvana 提供了 Consumer 和 Producer 接口。其中 Consumer 用于将请求体中的数据转换为业务函数需要的类型,而 Producer 则负责将业务函数的返回结果写入到响应体中。 \nNirvana 默认提供的 Consumers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 GET 之类的请求,因此不能转换为任何数据类型。\n\n\ntext/plain\n只能生成 string 和 []byte 类型\n\n\napplication/json\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 json.Unmarshal 进行解析。\n\n\napplication/xml\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 xml.Unmarshal 进行解析。\n\n\napplication/octet-stream\n只能生成 string 和 []byte 类型\n\n\napplication/x-www-form-urlencoded\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 类型,因此一般不转换为具体类型。\n\n\nmultipart/form-data\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 或 File 类型,因此一般不转换为具体类型。\n\n\n\nNirvana 默认提供的 Producers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 204 之类的响应,没有响应体,不需要写入。\n\n\ntext/plain\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\napplication/json\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 json.Marshal 将数据写入到响应。\n\n\napplication/xml\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 xml.Marshal 将数据写入到响应。\n\n\napplication/octet-stream\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\n\n添加 Consumer 和 Producer\n在业务的实际场景中,默认提供的 Consumers 和 Producers 可能不能满足实际使用需求。因此 Nirvana 的 service 包提供了相应的工具用于注册用户自己的 Consumer 和 Producer。\n注册 Consumer\nConsumer 需要实现接口:\n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Consumer:\nif err := service.RegisterConsumer(consumer); err != nil {\n log.Fatal(err)\n}\n\n在接收到 Content-Type 与 consumer 一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个 Consumer 去读取数据并进行类型转换。\n注册 Producer\nProducer 需要实现接口:\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Producer:\nif err := service.RegisterProducer(producer); err != nil {\n log.Fatal(err)\n}\n\n在需要生成 Conetent-Type 于 producer 一致的响应,并且业务函数需要返回数据的时候,就会调用这个 producer 将类型转换为字节数据写入到响应体中。\n快速生成 Consumer 和 Producer 的工具\n通常情况下,我们需要快速添加一些 Consumers 和 Producers,并且他们的行为和 application/octet-stream 一致的时候,那么可以直接使用工具方法:\nserializer := NewSimpleSerializer(contentType)\n\nif err := service.RegisterConsumer(serializer); err != nil {\n log.Fatal(err)\n}\n\nif err := service.RegisterProducer(serializer); err != nil {\n log.Fatal(err)\n}\n\n"},"concepts/operator.html":{"url":"concepts/operator.html","title":"Operator","keywords":"","body":"Operator\n包路径: github.com/caicloud/nirvana/definition\n在每个 API Definition 中,都有一组 Parameters 和 Results。其中 Parameters 和业务函数的参数一一对应,而 Results 则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,Nirvana 提供了 Operator 接口,可用于针对单个参数或返回值进行验证和修改:\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n在没有 Operator 的情况下,Nirvana 从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了 Operator,那么 Nirvana 会从第一个 Operator 的 In() 方法获取类型,\n并且会检查最后一个 Operator 的 Out() 类型是否和业务函数的参数类型一致。\n在实际的使用过程中,并不需要实现这个复杂的接口。Nirvana 提供了两种类型的 Operator:Validator 和 Converter。\nValidator\n包路径: github.com/caicloud/nirvana/operators/validator\nvalidator 包的实现基于 go-playground/validator,提供了用于生成 Operator 的方法:\nfunc Struct(instance interface{}) Validator\nfunc String(tag string) Validator\nfunc Int(tag string) Validator\nfunc Int64(tag string) Validator\nfunc Int32(tag string) Validator\nfunc Int16(tag string) Validator\nfunc Int8(tag string) Validator\nfunc Byte(tag string) Validator\nfunc Uint(tag string) Validator\nfunc Uint64(tag string) Validator\nfunc Uint32(tag string) Validator\nfunc Uint16(tag string) Validator\nfunc Uint8(tag string) Validator\nfunc Bool(tag string) Validator\n\n对于结构体类型,在需要的字段上添加名为 validate 的 tag。\n自定义验证器\n有时候默认的验证器不能覆盖复杂的验证需求,因此 validator 包还提供了方法用于创建自定义验证器:\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n验证器函数必须符合签名 func(ctx context.Context, object AnyType) error。其中 AnyType 是具体要验证的类型,不能使用接口。\nConverter\n包路径: github.com/caicloud/nirvana/operators/converter\n除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此 converter 包提供了工具方法用于将转换函数包装成 Operator:\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter\n\n转换函数必须符合 func f(context.Context, string, AnyType) (AnyType, error)。其中参数的 AnyType 和返回值的 AnyType 可以不同。\n在 Definition 中使用 Operator\n这是一个在 List Messages 的 API 中添加 Operator 的示例:\n// Definition\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: message.ListMessages,\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Operators: []def.Operator{\n validator.Int(\"min=1\"),\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n },\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n// 业务函数\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count uint) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n这个例子中,验证器要求 count 的最小值为 1,并且把 int 类型转换为了 uint 类型。业务函数的参数也响应的变成了 uint 类型。\n注意:Operator 是链式调用的,也就是说上一个 Operator 的返回值会作为下一个 Operator 的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:\nOperators: []def.Operator{\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n validator.Uint(\"min=1\"),\n},\n\n但是一般情况下,始终建议验证器放在前面,转换器放在后面。\n"},"concepts/filter.html":{"url":"concepts/filter.html","title":"Filter","keywords":"","body":"过滤器\n包路径: github.com/caicloud/nirvana/service\n在某些场景下,我们需要从源头对请求进行处理和过滤。Nirvana 提供了 Filter 机制,可以在收到一个请求的时候,立刻进行处理。并根据 Filter 的返回值来确定是直接丢弃该请求还是继续处理。\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nFilter 在整个 Nirvana 框架中处于最高优先级。Filter 返回 false 则表示请求不应该被继续处理,立刻丢弃。\nNirvana 提供的一些 Filters\nRedirectTrailingSlash\n这个过滤器判断 URL Path 尾部是不是存在 /,如果存在就重定向到没有 / 的路径上。\nFillLeadingSlash\n这个过滤器判断 URL Path 首部有没有 /,如果没有就加上 /。\nParseRequestForm\n这个过滤器只针对 application/x-www-form-urlencoded 和 multipart/form-data,然后 Parse 这两种类型的请求体,并转换为 Form 和 File。\n"},"concepts/prefab.html":{"url":"concepts/prefab.html","title":"Prefab","keywords":"","body":"Prefab\n包路径: github.com/caicloud/nirvana/service\nPrefab 是 Nirvana 中一类特殊的 Source。其他的 Source 的数据来源都是来自于请求,而 Prefab 来自于服务端本身。\n// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n可以通过 service 包的 RegisterPrefab() 注册需要的 Prefab。\nPrefab 类型的参数在生成文档和客户端的时候会被忽略,因此不要使用 Prefab 从请求中获取数据。\nNirvana 提供的 Prefab\nContextPrefab\nContextPrefab 是 Nirvana 中实现的唯一一个 Prefab,即 service.ContextPrefab。这个 Prefab 将框架传递给它的与请求绑定的 context 返回回去。\n使用方法如下:\nvar someAPI = def.Definition{\n ...\n Parameters: []def.Parameter{\n ...\n {\n Source: def.Prefab,\n Name: \"context\",\n },\n ...\n },\n ...\n}\n\n只需要将业务函数对应位置的 Parameter 设置为 Prefab,名称为 context 即可。\n但是一般情况下,我们不应该这样使用 ContextPrefab。请参考 Modifier 和 Context\n"},"concepts/modifier.html":{"url":"concepts/modifier.html","title":"Modifier","keywords":"","body":"Modifier\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,每一个 API 都有一个对应的 Definition。在我们实际开发过程中,经常会要求 API 和 业务函数有一致的行为表现。比如每个业务函数的第一个参数都是 Context。在这种场景下,如果每个 Definition 都需要去描述这个参数,那么 Definition 会显得非常冗余。因此 Nirvana 提供了 Definition Modifer 机制,允许在 Definition 生效之前,对 Definition 进行修改。\n这样就能通过 Modifier 完成 Definition 公共部分的构建,而每个 Definition 实际上要填写的部分就是只与自身业务相关的信息。Modifier 如下:\ntype DefinitionModifier func(d *definition.Definition)\n\nNirvana 提供的 Modifiers\n在使用 nirvana init 创建的项目中,可以在 pkg/apis/modifiers 下查看启用的 Modifiers。 \n默认启用的 Modifiers 包括:FirstContextParameter,ConsumeAllIfConsumesIsEmpty,ProduceAllIfProducesIsEmpty,ConsumeNoneForHTTPGet,ConsumeNoneForHTTPDelete,ProduceNoneForHTTPDelete。\nFirstContextParameter\n这个 Modifier 为所有 Definition 的第一个参数添加上名为 context 的 Prefab。启用之后,所有业务函数的第一个参数必须是 context.Context。\nConsumeAllIfConsumesIsEmpty\n这个 Modifier 为所有 Consumes 为空的 Definition 加上 */*。\nProduceAllIfProducesIsEmpty\n这个 Modifier 为所有 Produces 为空的 Definition 加上 */*。\nConsumeNoneForHTTPGet\n这个 Modifier 为所有 HTTP GET 类型的 Definition 加上空的 Consumer,即允许请求体为空。\nProduceNoneForHTTPDelete\n这个 Modifier 为所有 HTTP Delete 类型的 Definition 加上空的 Producer,即允许响应体为空。\nLastErrorResult\n这个 Modifier 为所有的 Definition 的最后一个返回值加上 definition.Error。\n"},"concepts/middleware.html":{"url":"concepts/middleware.html","title":"Middleware","keywords":"","body":"中间件\n包路径: github.com/caicloud/nirvana/definition\nNirvana 中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下: \n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过 Chain 进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。\n中间件添加在 Descriptor 中:\ndef.Descriptor{\n Path: \"/path\",\n Middlewares: []def.Middleware{SomeMiddleware},\n}\n\n添加成功后,所有前缀匹配 /path 的请求都会执行这个中间件。\n注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。\n中间件执行顺序\n如果以下路径都添加了中间件:\n1. /\n2. /path\n3. /path/path2\n\n那么如果存在请求 /path/path2/others 且成功匹配的情况下,中间件的执行按照 1 -> 2 -> 3 的顺序。\n中间件只与 URL Path 有关,因此如果多个 Descriptor 中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。\n"},"concepts/context.html":{"url":"concepts/context.html","title":"Context","keywords":"","body":"Context\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,Context 用于传递请求的上下文。Context 中包含 HTTP 的 Request 和 ResponseWriter。可是使用 service 包的 HTTPContextFrom() 方法获得 HTTP Context。HTTP Context 相关接口如下:\n// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\nNirvana 框架会为每个请求构建这样的 HTTPContext。如有必要,可以通过这些接口拿到与请求相关的所有数据。\n在一个请求路由匹配成功后,Nirvana 会把对应的 HTTPContext 传递给中间件,然后由中间件调用链继续传递。最终经由 ContextPrefab 传递给业务函数。\n中间件不应该修改 HTTPContext,除非您明确知道如何修改。\n"},"concepts/source.html":{"url":"concepts/source.html","title":"Parameter Generator","keywords":"","body":"Parameter Generator\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 8 种类型的 Source:Path,Query,Header,Form,File,Body,Auto,Prefab。\n每种 Source 对应一个 Generator。这些 Generator 负责一种类型的参数的验证和类型转换工作。\n// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n如果 Nirvana 默认提供的 Generator 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Generator:\n// RegisterParameterGenerator register a generator.\nfunc RegisterParameterGenerator(generator ParameterGenerator) error\n\n"},"concepts/destination.html":{"url":"concepts/destination.html","title":"Destination Handler","keywords":"","body":"Destination Handler\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 3 种类型的 Destination:Meta,Data,Error。\n每种 Destination 对应一个 Handler。这些 Handler 负责一种类型的返回结果的数据转换工作。\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n如果 Nirvana 默认提供的 Handler 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Handler:\n// RegisterDestinationHandler registers a type handler.\nfunc RegisterDestinationHandler(handler DestinationHandler) error\n\nDefinition Handler 存在优先级,优先级高的 Handler 先执行。并且执行之后会返回 goon,用来确定是否需要执行下一个 Handler。\n"},"concepts/error.html":{"url":"concepts/error.html","title":"错误包","keywords":"","body":"错误包\n包路径: github.com/caicloud/nirvana/errors\nError 介绍\n在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在 golang 中,错误需要实现 error 接口。即:\ntype error interface {\n Error() string\n}\n\n这种形式的 error 接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此 Nirvana 对于这种错误,都会以 500 Internal Server Error 的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。\n于是 Nirvana 提供了一个新的接口:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\n在业务函数中,仍然以 error 的形式返回错误。但是框架会检查返回的错误是否实现了 Error 接口。如果实现了,就会以 Code() 的返回值作为 HTTP 状态码,Message() 的返回值作为数据返回。\nerrors 包\n为了方便使用,Nirvana 提供了 errors 包用于生成 error。创建 error 的方式有两种:\n\n方法一\n\nvar somethingNotCorrect = errors.BadRequest.Build(\"ProjectName:ModuleName:SomethingNotCorrect\", \"${name} is not correct\")\n\nfunc SomeFunction() error {\n // Do something\n return somethingNotCorrect.Error(something.Name)\n}\n\n\n方法二\n\nfunc SomeFunction() error {\n return errors.BadRequest.Error(\"${name} is not correct\", something.Name)\n}\n\n这两种方法都可以创建 error,但是第一种方法比第二种多出更多特性:\n\n第一种方法支持使用 somethingNotCorrect.Derived(err) 的形式判断一个 err 是否由这个错误工厂生成。\n第一种方法带有 Reason,方便客户端判断错误类型。\n\n因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。\nerror 的 Reason\n在实际的业务中,HTTP 状态码并不足以表达业务中繁复的错误。因此我们将 HTTP 状态码视为错误大类(比如 NotFound 表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。\n这样做有两个优势:\n\n通过 HTTP 状态码即可大致判断一个错误的行为\n通过具体错误的 Reason 来唯一确定一个错误\n\n在常见的商业 API 中,我们也经常看到使用数字 ID 来标志的错误。但是数字 ID 的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的 ID,也就是 Reason。\n我们建议 Reason 的格式满足:\n项目名[:模块名]:错误名\n国际化\n使用 errors 包生成的错误会记录每个占位符的名称和值,保存在 data 字段中,可以在客户端使用 data 里的值进行文本国际化。\n使用范例\n在业务函数中使用 errors:\n\nvar messageNotExist = errors.NotFound.Build(\"MyProject:Message:MessageNotExist\", \"there is no message with id ${id}\")\n\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n if id > 100 {\n return nil, messageNotExist.Error(id)\n }\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n编译运行后可以得到结果:\n访问 curl http://localhost:8080/apis/v1/messages/100,即可得到一个 200 的响应,响应体为:\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n访问 curl http://localhost:8080/apis/v1/messages/101,即可得到一个 404 的响应,响应体为:\n{\"reason\":\"MyProject:Message:MessageNotExist\",\"message\":\"there is no message with id 101\",\"data\":{\"id\":\"101\"}}\n"},"concepts/method.html":{"url":"concepts/method.html","title":"方法包","keywords":"","body":"方法包\n包路径: github.com/caicloud/nirvana/definition/method\n在 Nirvana 中,业务函数是 API 请求的 Handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。\n为了保证业务与 API 定义的无关性,Nirvana 提供了 method 包,用于分离实例的创建和 API 定义。\nAPI 定义:\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: method.Get(&message.Container{}, \"ListMessages\"),\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n业务方法:\n// Container contains example title and content of messages.\ntype Container struct {\n Title string\n Content string\n}\n\n// NewContainer creates Container\nfunc NewContainer(title, content string) *Container {\n return &Container{title, content}\n}\n\n// ListMessages returns all messages.\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \nmain.go 中创建实例并通过 Put() 函数放到方法容器中(需要在服务启动之前完成):\nmethod.Put(message.NewContainer(\"Method Example\", \"Method Content\"))\n\n然后编译运行,访问 http://localhost:8080/apis/v1/messages 即可得到返回结果:\n[{\"id\":0,\"title\":\"Method Example 0\",\"content\":\"Method Content 0\"},{\"id\":1,\"title\":\"Method Example 1\",\"content\":\"Method Content 1\"},{\"id\":2,\"title\":\"Method Example 2\",\"content\":\"Method Content 2\"},{\"id\":3,\"title\":\"Method Example 3\",\"content\":\"Method Content 3\"},{\"id\":4,\"title\":\"Method Example 4\",\"content\":\"Method Content 4\"},{\"id\":5,\"title\":\"Method Example 5\",\"content\":\"Method Content 5\"},{\"id\":6,\"title\":\"Method Example 6\",\"content\":\"Method Content 6\"},{\"id\":7,\"title\":\"Method Example 7\",\"content\":\"Method Content 7\"},{\"id\":8,\"title\":\"Method Example 8\",\"content\":\"Method Content 8\"},{\"id\":9,\"title\":\"Method Example 9\",\"content\":\"Method Content 9\"}]\nmethod 包介绍\nmethod 包是一个全局实例容器,每种类型对应一个实例。\n具体实例类型\n使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的 *message.Container 实例。\n其中 Put(ins insterface{}) 函数用于将一个实例放置到全局容器中,形成 类型-实例 的对应关系。\nGet(typIns interface{}, method string) 用于生成一个匿名函数,生成的函数的签名没有方法的 receiver 部分,例如:\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error)\n生成匿名函数:\nfunc (ctx context.Context, count int) ([]Message, error)\n但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。\n这就是 Get() 函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会 panic。\n注意,Get() 函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说 &Container{} 和 (*Container)(nil) 是一样的。\n接口实例类型\n除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。\n设置接口实例:\nmethod.PutInterface((*ArbitraryInterface)(nil), instance)\n\n获取接口实例:\nmethod.Get((*ArbitraryInterface)(nil), \"MethodName\")\n\n"},"concepts/configurer.html":{"url":"concepts/configurer.html","title":"配置器机制","keywords":"","body":"配置器机制\n包路径: github.com/caicloud/nirvana\nNirvana 在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。\nNirvana 的 Config 实现了 Configurer 机制,用于单独配置每一项信息:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config {\n ...\n}\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\nNirvana 提供的 Configurers\nIP(ip string) Configurer\n设置监听的 IP 地址。\nPort(port uint16) Configurer\n设置监听的端口。\nTLS(certFile, keyFile string) Configurer\n设置 TLS 证书和密钥。\nLogger(logger log.Logger) Configurer\n设置 Server 在运行过程中使用的 Logger,用于输出错误。\nFilter(filters ...service.Filter) Configurer\n添加 Filter。\nModifier(modifiers ...service.DefinitionModifier) Configurer\n添加 Modifier。\nDescriptor(descriptors ...definition.Descriptor) Configurer\n添加 API 描述。所有的 API 都通过这个 Configurer 添加到 Nirvana 的 Server 里。\n"},"concepts/plugin.html":{"url":"concepts/plugin.html","title":"插件机制","keywords":"","body":"插件机制\nNirvana 的 Config 除了使用 Configurer 配置基本信息以外,还提供了插件机制。\n插件接口:\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n插件实现了这个接口之后,即可通过 nirvana 包提供的方法进行注册:\nfunc RegisterConfigInstaller(ci ConfigInstaller)\n\n一般情况下,插件应该通过插件 package 的 init() 进行注册。然后提供相应的 Configurer 在 Nirvana 的 Config 中添加插件配置。\nPlugin Framework\n一个基本的插件框架如下:\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\n"},"concepts/clients.html":{"url":"concepts/clients.html","title":"多客户端整合","keywords":"","body":"多客户端整合\n默认情况下,我们会为每个服务生成如下结构的客户端:\nclient\n├── client.go\n├── v1\n│ ├── client.go\n│ └── types.go\n└── v2\n\n在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:\nclientset\n├── svca\n│ ├── client.go\n│ ├── v1\n│ │ ├── client.go\n│ │ └── types.go\n│ └── v2\n└── svcb\n ├── client.go\n ├── v1\n │ ├── client.go\n │ └── types.go\n └── v2\n整合客户端\n为了演示这个过程,我们逐步构建这个项目。\n创建项目\n首先创建 clientset 项目,用于保存所有服务的客户端:\n$ cd $GOPATH/src/\n$ mkdir clientset\n然后创建两个服务项目(仅用于演示):\n$ nirvana init svca\n$ nirvana init svcb\n即创建了 svca 和 svcb 两个服务项目。\n生成客户端\n生成 svca 的客户端:\n$ cd $GOPATH/src/svca\n$ nirvana client --output ../clientset/svca\n生成 svcb 的客户端:\n$ cd $GOPATH/src/svcb\n$ nirvana client --output ../clientset/svcb\n此时 clientset 的项目结构如下:\nclientset\n├── svca\n│ ├── client.go\n│ └── v1\n│ ├── client.go\n│ └── types.go\n└── svcb\n ├── client.go\n └── v1\n ├── client.go\n └── types.go\n这样所有客户端都在一个项目中,不需要依赖其他服务项目。\n统一网关访问\n在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。\n创建 ClientSet\n在 clientset 中创建 clientset.go:\n$ cd $GOPATH/src/clientset\n$ touch clientset.go\nclientset.go 代码如下:\npackage clientset\n\nimport (\n svca \"clientset/svca\"\n svcb \"clientset/svcb\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a clientset.\ntype Interface interface {\n // SvcA returns a client for svc a.\n SvcA() svca.Interface\n // SvcB returns a client for svc b.\n SvcB() svcb.Interface\n}\n\n// ClientSet contains multiple clients.\ntype ClientSet struct {\n svcA svca.Interface\n svcB svcb.Interface\n}\n\n// NewClientSet creates a new client set.\nfunc NewClientSet(cfg *rest.Config) (Interface, error) {\n c := &ClientSet{}\n var err error\n\n c.svcA, err = svca.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n c.svcB, err = svcb.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClientSet creates a new client set or panic if an error occurs.\nfunc MustNewClientSet(cfg *rest.Config) Interface {\n c, err := NewClientSet(cfg)\n if err != nil {\n panic(err)\n }\n return c\n}\n\n// SvcA returns a client for svc a.\nfunc (c *ClientSet) SvcA() svca.Interface {\n return c.svcA\n}\n\n// SvcB returns a client for svc b.\nfunc (c *ClientSet) SvcB() svcb.Interface {\n return c.svcB\n}\n\n使用 ClientSet\nClientSet 的使用方法和普通 Client 没有太大区别:\nfunc main() {\n cli := clientset.MustNewClientSet(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.SvcA().V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n"},"plugins/logger.html":{"url":"plugins/logger.html","title":"系统日志插件","keywords":"","body":"系统日志插件\n包路径: github.com/caicloud/nirvana/plugins/logger\n系统日志插件是一个伪插件。这个插件本身没有按照 Plugin Framework 编写,只是为了通过 config 包的 Command 暴露 Flag。\n这个插件暴露三个选项:\n// Option contains basic configurations of logger.\ntype Option struct {\n // Debug is logger level.\n Debug bool `desc:\"Debug mode. Output all logs\"`\n // Level is logger level.\n Level int32 `desc:\"Log level. This field is no sense if debug is enabled\"`\n // OverrideGlobal modifies nirvana global logger.\n OverrideGlobal bool `desc:\"Override global logger\"`\n}\n启用 Debug 模式后,Level 就无效。如果 OverrideGlobal 为 true,那么除了设置当前 Server 的 logger 以外,还会设置全局的 logger。\n"},"plugins/reqlog.html":{"url":"plugins/reqlog.html","title":"请求日志插件","keywords":"","body":"请求日志插件\n包路径: github.com/caicloud/nirvana/plugins/reqlog\n请求日志插件会添加一个在 / 上的中间件,用于打印所有路由匹配成功的请求的日志。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nDefault() nirvana.Configurer\n启用插件并使用默认配置\n\n\nLogger(l log.Logger) nirvana.Configurer\n设置 Logger\n\n\nDoubleLog(enable bool) nirvana.Configurer\n启用或关闭双重日志,即请求开始一条日志,请求结束一条日志\n\n\nSourceAddr(enable bool) nirvana.Configurer\n启用或关闭显示源地址\n\n\nRequestID(enable bool) nirvana.Configurer\n启用或关闭显示请求 ID \n\n\nRequestIDKey(key string) nirvana.Configurer\n设置请求 ID 的 key,默认为 X-Request-ID\n\n\n\n"},"plugins/metrics.html":{"url":"plugins/metrics.html","title":"监控指标插件","keywords":"","body":"监控指标插件\n包路径: github.com/caicloud/nirvana/plugins/metrics\n监控指标插件基于 Prometheus,提供了一个 API 用于暴露服务端指标。\n启用插件后,可以直接向 prometheus 包注册指标。采集端可以通过 /metrics 采集指标数据。\nAPI 路径 /metrics 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /metrics\n\n\nNamespace(ns string) nirvana.Configurer\n设置 Prometheus Namespace\n\n\n\n"},"plugins/tracing.html":{"url":"plugins/tracing.html","title":"请求追踪插件","keywords":"","body":"请求追踪插件\n包路径: github.com/caicloud/nirvana/plugins/tracing\n请求追踪插件基于 OpenTracing 接口实现了请求跟踪机制,会在 / 上添加一个中间件用于提取 Tracing 信息。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nCustomTracer(tracer opentracing.Tracer) nirvana.Configurer\n使用自定义的 Tracer\n\n\nDefaultTracer(serviceName string, agentHostPort string) nirvana.Configurer\n使用默认的 Tracer\n\n\nAddHook(hook Hook) nirvana.Configurer\n设置请求 Hook\n\n\n\nHook 接口:\n// Hook allows you to custom information for span.\ntype Hook interface {\n // Exec before request processing\n Before(ctx context.Context, span opentracing.Span)\n // Exec after request processing\n After(ctx context.Context, span opentracing.Span)\n}\n\n"},"plugins/profiling.html":{"url":"plugins/profiling.html","title":"性能分析插件","keywords":"","body":"性能分析插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n性能分析插件添加与 net/http/pprof 一致的 API,用于取得服务运行时信息。\n默认情况下,插件会添加四个 Descriptor:\n\n/debug/pprof\n/debug/pprof/profile\n/debug/pprof/symbol\n/debug/pprof/trace\n\n前缀路径 /debug/pprof 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置路径前缀,默认值为 /debug/pprof\n\n\n\n"},"plugins/version.html":{"url":"plugins/version.html","title":"版本信息插件","keywords":"","body":"版本信息插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n版本信息插件提供一个 API 返回服务的版本信息。API 路径默认为 /version。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /version\n\n\nName(name string) nirvana.Configurer\n设置服务名称\n\n\nVersion(version string) nirvana.Configurer\n设置服务版本号\n\n\nHash(hash string) nirvana.Configurer\n设置服务 hash 值。一般情况下可以设置为代码的 commit 值\n\n\nDescription(description string) nirvana.Configurer\n设置服务的描述\n\n\n\n"},"plugins/healthcheck.html":{"url":"plugins/healthcheck.html","title":"健康检查插件","keywords":"","body":"健康检查插件\n包路径: github.com/caicloud/nirvana/plugins/healthcheck\n健康检查插件提供一个 API 返回服务当前是否健康。API 默认路径为 /healthz。\n插件提供了一个函数接口:\ntype HealthChecker func(ctx context.Context) error\n如果服务正常,则 checker 应该返回 nil。如果服务异常,则返回相应的错误。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /healthz\n\n\nChecker(checker HealthChecker) nirvana.Configurer\n设置 Checker 用于检查服务是否正常。\n\n\n\n"},"topics/start.html":{"url":"topics/start.html","title":"准备工作","keywords":"","body":"准备工作\n开发工具介绍\n\ngolang:https://golang.org/dl/\ndep:https://github.com/golang/dep\ngometalinter:https://github.com/alecthomas/gometalinter\n\n一般情况下,我们使用最新版本的 golang 进行开发,但是需要保证两个 golang 大版本的兼容性。即使用 1.10.x 开发的情况下,需要保持对 1.9.x 的兼容性。\n另外 Nirvana 只使用 dep 进行依赖管理,不要使用其他依赖管理工具对 vendor 进行任何更新操作。并且所有的依赖需要放置在根目录的 vendor 中,不能在任何子目录下使用 vendor。\n除了常规的 go test 测试以外,还需要使用 gometalinter 进行代码检查,gometalinter 的配置文件在根目录的 config.json 中。\n工作流程\n在 githuh 上 Fork Nirvana 到自己的账户下,然后下载源码到本地开发目录中:\n$ cd $GOPATH/src\n$ mkdir -p github.com/caicloud/\n$ cd github.com/caicloud/\n$ git clone git@github.com:{your account}/nirvana.git\n在完成修改并提交到自己的 repo 之后,通过 github PR 的形式向 Nirvana 提交代码。\n框架设计概览\nNirvana 框架的设计核心思想是:隔离 API 定义和业务逻辑实现\n也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。\nNirvana 包之间的依赖关系:\n\n\n其中 log 与 errors 是基础包,分别负责日志基础接口和错误处理基础接口。\ndefinition 包包含 Nirvana 框架的 API 定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。\ndefinition/method 帮助用户把实例方法转换为 definition 函数。请参考 方法包。\noperators 中包含了两个组件功能实现了 converters 和 validators,用于 API 参数的类型转换和数据验证。\nservice/router 包实现了基于前缀树的路由和中间件功能。\nservice 包实现了框架 API 路由和处理的所有功能。\nnirvana 包实现了 API Server 以及插件化功能。\nplugins 中包含了许多实现了 nirvana 插件接口的插件。\nconfig 包实现了 Nirvana Command 功能,并提供了从 flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用 Nirvana 的入口包。\nutils 包包含多个工具用于 API 生成,客户端代码生成,项目结构生成。\ncmd/nirvana 是 Nirvana 的主要命令,利用 utils 包帮助用户快速构建项目。\n\n在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。\n"},"topics/log.html":{"url":"topics/log.html","title":"log","keywords":"","body":"log 包\nlog 包提供了一组基础的日志 API 和一个使用了 stderr 进行输出的标准实现。\n标准接口如下:\n// Level is log level of verboser. We strongly recommend you to\n// follow the rules:\n// 1. Use LevelDebug for debug log.\n// 2. Use 1 for important but not frequent log.\n// 3. Use 2 for important and frequent log.\n// 4. Use 3 for not important and not frequent log.\n// 5. Use 4 for not important but frequent log.\n// 6. Use [5, LevelDebug) only if you want to custom log levels.\ntype Level int32\n\nconst (\n // LevelDebug is for debug info.\n LevelDebug Level = math.MaxInt32\n)\n\n// Severity has four classes to correspond with log situation.\ntype Severity string\n\nconst (\n // SeverityInfo is for usual log.\n SeverityInfo Severity = \"INFO\"\n // SeverityWarning is for warning.\n SeverityWarning Severity = \"WARN\"\n // SeverityError is for error.\n SeverityError Severity = \"ERROR\"\n // SeverityFatal is for panic error. The severity means that\n // a logger will output the error and exit immediately.\n // It can't be recovered.\n SeverityFatal Severity = \"FATAL\"\n)\n\n// Verboser is an interface type that implements Info(f|ln) .\n// See the documentation of V for more information.\ntype Verboser interface {\n // Info logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Info(...interface{})\n // Infof logs to the INFO log.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Infof(string, ...interface{})\n // Infoln logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Infoln(...interface{})\n}\n\n// Logger provides a set of methods to output log.\ntype Logger interface {\n Verboser\n // V reports whether verbosity at the call site is at least the requested level.\n // The returned value is a Verboser, which implements Info, Infof\n // and Infoln. These methods will write to the Info log if called.\n V(Level) Verboser\n // Warning logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Warning(...interface{})\n // Warningf logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Warningf(string, ...interface{})\n // Warningln logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Warningln(...interface{})\n // Error logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Error(...interface{})\n // Errorf logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Errorf(string, ...interface{})\n // Errorln logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Errorln(...interface{})\n // Fatal logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Fatal(...interface{})\n // Fatalf logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Fatalf(string, ...interface{})\n // Fatalln logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Fatalln(...interface{})\n // Clone clones current logger with new wrapper.\n // A positive wrapper indicates how many wrappers outside the logger.\n // A negative wrapper indicates how many wrappers should be stripped.\n Clone(wrapper int) Logger\n}\n\n这套日志 API 参考了 glog 的 golang API,并且允许用户接入其他日志系统。\n在实现一个自定义的 logger 之前,需要知道以下几件事情:\n\nlog 包有一个默认的 logger,使用的是 StdLogger。可以通过 SetDefaultLogger() 变更。\n对于不需要输出日志的场景,使用 SilentLogger 的实例而不是 nil.\n正确实现 logger 的 Clone 方法。Clone 方法用于在对 logger 进行包装的时候,获取正确层级的调用栈信息。\n在 Fatal* 时候,使用 os.Exit(1) 进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。\n\n"},"topics/errors.html":{"url":"topics/errors.html","title":"errors","keywords":"","body":"errors 包\nerrors 包类似于标准库的 errors 包,但是提供了方法用于生成格式化的错误和错误判断。\nerrors 包中存在三个概念,分别是 Builder,Factory 和 Error。其中 Builder 用于构建 Factory,Factory 则用于构建特定的 Error。\nFactory 接口如下:\n// Factory can create error from a fixed format.\ntype Factory interface {\n // Error generates an error from v.\n Error(v ...interface{}) error\n // Derived checks if an error was derived from current factory.\n Derived(e error) bool\n}\n\nError 接口如下(这个接口并没有显式定义在 errors 包中):\ntype Error interface {\n error\n Code() int\n Message() interface{}\n}\n\n首先看 Facotry 的两个方法:\n\nError 用于传入参数输出一个真正的错误。\nDerived 则用于判断一个错误是否是由当前的 Factory 生成。\n这样就能够非常方便的错误创建和错误判断了。\n\nFactory 是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同 string format,比如 \"${user} is not found\")。\n通常情况下,有 Factory 和 Error 就足够了。但是为了让错误能够以 HTTP API 的形式向客户端返回,我们还需要给 Factory 加上一些附加属性,用来表示返回的错误码等信息。\n因此在 Factory 之上,构建了 Builder 接口,用于创建具有一类特征的 Factory(比如一类表示 NotFound 的错误)。\nBuilder 接口如下:\n// Builder can build error factories and errros.\ntype Builder interface {\n // Build builds a factory to generate errors with predefined format.\n Build(reason Reason, format string) Factory\n // Error immediately creates an error without reason.\n Error(format string, v ...interface{}) error\n}\n\nBuilder 可以构建带有 reason 和 format 的 Factory。也直接提供了 Error 方法用于直接创建出 Error。\n目前 errors 包提供的 Builder 主要是以 HTTP 状态码作为基础的:\n// These factory builders is used to build error factory.\nvar (\n BadRequest = newKind(400) // RFC 7231, 6.5.1\n Unauthorized = newKind(401) // RFC 7235, 3.1\n PaymentRequired = newKind(402) // RFC 7231, 6.5.2\n Forbidden = newKind(403) // RFC 7231, 6.5.3\n NotFound = newKind(404) // RFC 7231, 6.5.4\n MethodNotAllowed = newKind(405) // RFC 7231, 6.5.5\n NotAcceptable = newKind(406) // RFC 7231, 6.5.6\n ProxyAuthRequired = newKind(407) // RFC 7235, 3.2\n RequestTimeout = newKind(408) // RFC 7231, 6.5.7\n Conflict = newKind(409) // RFC 7231, 6.5.8\n Gone = newKind(410) // RFC 7231, 6.5.9\n LengthRequired = newKind(411) // RFC 7231, 6.5.10\n PreconditionFailed = newKind(412) // RFC 7232, 4.2\n RequestEntityTooLarge = newKind(413) // RFC 7231, 6.5.11\n RequestURITooLong = newKind(414) // RFC 7231, 6.5.12\n UnsupportedMediaType = newKind(415) // RFC 7231, 6.5.13\n RequestedRangeNotSatisfiable = newKind(416) // RFC 7233, 4.4\n ExpectationFailed = newKind(417) // RFC 7231, 6.5.14\n Teapot = newKind(418) // RFC 7168, 2.3.3\n UnprocessableEntity = newKind(422) // RFC 4918, 11.2\n Locked = newKind(423) // RFC 4918, 11.3\n FailedDependency = newKind(424) // RFC 4918, 11.4\n UpgradeRequired = newKind(426) // RFC 7231, 6.5.15\n PreconditionRequired = newKind(428) // RFC 6585, 3\n TooManyRequests = newKind(429) // RFC 6585, 4\n RequestHeaderFieldsTooLarge = newKind(431) // RFC 6585, 5\n UnavailableForLegalReasons = newKind(451) // RFC 7725, 3\n\n InternalServerError = newKind(500) // RFC 7231, 6.6.1\n NotImplemented = newKind(501) // RFC 7231, 6.6.2\n BadGateway = newKind(502) // RFC 7231, 6.6.3\n ServiceUnavailable = newKind(503) // RFC 7231, 6.6.4\n GatewayTimeout = newKind(504) // RFC 7231, 6.6.5\n HTTPVersionNotSupported = newKind(505) // RFC 7231, 6.6.6\n VariantAlsoNegotiates = newKind(506) // RFC 2295, 8.1\n InsufficientStorage = newKind(507) // RFC 4918, 11.5\n LoopDetected = newKind(508) // RFC 5842, 7.2\n NotExtended = newKind(510) // RFC 2774, 7\n NetworkAuthenticationRequired = newKind(511) // RFC 6585, 6\n)\n\n这个包方便了用户创建能够被 Nirvana 识别的错误,但是如果业务逻辑中如果不希望引入对 errors 包的依赖,可以自行实现错误包,只要产出的错误符合 Error 接口即可。\n"},"topics/definition.html":{"url":"topics/definition.html","title":"definition","keywords":"","body":"definition 包\ndefinition 包包含了 Nirvana 的 API 定义,用于描述 API 的参数与返回值。\n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n// Method is an alternative of HTTP method. It's more clearer than HTTP method.\n// A definition method binds a certain HTTP method and a success status code.\ntype Method string\n\nconst (\n // List binds to http.MethodGet and code http.StatusOK(200).\n List Method = \"List\"\n // Get binds to http.MethodGet and code http.StatusOK(200).\n Get Method = \"Get\"\n // Create binds to http.MethodPost and code http.StatusCreated(201).\n Create Method = \"Create\"\n // Update binds to http.MethodPut and code http.StatusOK(200).\n Update Method = \"Update\"\n // Patch binds to http.MethodPatch and code http.StatusOK(200).\n Patch Method = \"Patch\"\n // Delete binds to http.MethodDelete and code http.StatusNoContent(204).\n Delete Method = \"Delete\"\n // AsyncCreate binds to http.MethodPost and code http.StatusAccepted(202).\n AsyncCreate Method = \"AsyncCreate\"\n // AsyncUpdate binds to http.MethodPut and code http.StatusAccepted(202).\n AsyncUpdate Method = \"AsyncUpdate\"\n // AsyncPatch binds to http.MethodPatch and code http.StatusAccepted(202).\n AsyncPatch Method = \"AsyncPatch\"\n // AsyncDelete binds to http.MethodDelete and code http.StatusAccepted(202).\n AsyncDelete Method = \"AsyncDelete\"\n)\n\n// Source indicates which place a value is from.\ntype Source string\n\nconst (\n // Path means value is from URL path.\n Path Source = \"Path\"\n // Query means value is from URL query string.\n Query Source = \"Query\"\n // Header means value is from request header.\n Header Source = \"Header\"\n // Form means value is from request body and content type must be\n // \"application/x-www-form-urlencoded\" and \"multipart/form-data\".\n Form Source = \"Form\"\n // File means value is from request body and content type must be\n // \"multipart/form-data\".\n File Source = \"File\"\n // Body means value is from request body.\n Body Source = \"Body\"\n // Auto identifies a struct and generate field values by field tag.\n //\n // Tag name is \"source\". Its value format is \"Source,Name\".\n //\n // ex.\n // type Example struct {\n // Start int `source:\"Query,start\"`\n // ContentType string `source:\"Header,Content-Type\"`\n // }\n Auto Source = \"Auto\"\n // Prefab means value is from a prefab generator.\n // A prefab combines data to generate value.\n Prefab Source = \"Prefab\"\n)\n\n// Destination indicates the target type to place function results.\ntype Destination string\n\nconst (\n // Meta means result will be set into the header of response.\n Meta Destination = \"Meta\"\n // Data means result will be set into the body of response.\n Data Destination = \"Data\"\n // Error means the result is an error and should be treated specially.\n // An error occurs indicates that there is no data to return. So the\n // error should be treated as data and be writed back to client.\n Error Destination = \"Error\"\n)\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Instance is a custom data.\n Instance interface{}\n}\n\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Summary is a one-line brief description of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nDescriptor 结构体包含具有如下含义的字段:\n\nAPI 路径\n可被 Middlewares,Definitions,Children 继承的字段\n其他与 API 路径同等级别的字段\n\n如果希望对 Descriptor 进行扩展,需要遵守上面这些规则。\nDefinition 结构体包含了一个具体的 API 定义:\n\nAPI 方法,这个方法是一个抽象方法,用于描述一种行为(比如 Create)。\nAPI 参数和返回值定义\n其他与具体 API 同等级别的字段\n\n如果希望对 Definition 进行扩展,需要遵守上面这些规则。\nParameter 和 Result 分别对应 API 的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。\n在上面的定义中,存在两个额外功能:\n\n在 Descriptor 中提供了 Middleware\n在 Parameter 和 Result 中,提供了 Operator\n\n其中 Middleware 提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而 Operator 则针对单个的业务参数和返回值,可以对值进行验证和修改。\ndefinition 包除了包含对 API 的定义以外,还提供了一些函数,帮助快速构建 Definitions 和 Operators:\n// MIME types\nconst (\n // acceptTypeAll indicates a accept type from http request.\n // It means client can receive any content.\n // Request content type in header \"Content-Type\" must not set to \"*/*\".\n // It only can exist in request header \"Accept\".\n // In most time, it locate at the last element of \"Accept\".\n // It's default value if client have not set \"Accept\" header.\n MIMEAll = \"*/*\"\n MIMENone = \"\"\n MIMEText = \"text/plain\"\n MIMEJSON = \"application/json\"\n MIMEXML = \"application/xml\"\n MIMEOctetStream = \"application/octet-stream\"\n MIMEURLEncoded = \"application/x-www-form-urlencoded\"\n MIMEFormData = \"multipart/form-data\"\n)\n\n// OperatorFunc creates operator by function.\n// function must has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to identify field.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc OperatorFunc(kind string, f interface{}) Operator\n\n"},"topics/method.html":{"url":"topics/method.html","title":"definition/method","keywords":"","body":"method 包\n在 definition 包中,可以看到 Definition.Function 必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method 包提供了一个实例方法容器,帮助用户把实例方法转换为函数。\n容器如下:\n// Container contains instances and mappings.\ntype Container struct {\n ...\n}\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc (c *Container) Put(instance interface{})\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc (c *Container) PutInterface(iface interface{}, instance interface{})\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc (c *Container) Get(instance interface{}, method string) interface{}\n\n这个实例方法容器分离了方法的 Get 和 Put 过程。也就是可以在声明 API 时,使用 Get 获取某个实例的方法,之后再在服务启动逻辑里 Put 真正的实例,即 Get 可以在 Put 之前使用。\n这个主要是利用了 golang 的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。\nmethod 包还提供了一个全局的 Container:\nvar defaultContainer = NewContainer()\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc Put(instance interface{}) {\n defaultContainer.Put(instance)\n}\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc PutInterface(iface interface{}, instance interface{}) {\n defaultContainer.PutInterface(iface, instance)\n}\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc Get(instance interface{}, method string) interface{} {\n return defaultContainer.Get(instance, method)\n}\n\n一般情况下,用户会使用这个全局的容器。\n"},"topics/converter.html":{"url":"topics/converter.html","title":"operators/converter","keywords":"","body":"converter 包\nconverter 包提供了一个 Converter 实现,帮助用户快速构建名为 converter 的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `converter`.\nconst OperatorKind = \"converter\"\n\n// Converter describes a converter.\ntype Converter interface {\n definition.Operator\n}\n\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter {\n return definition.OperatorFunc(OperatorKind, f)\n}\n\n这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为 Operator。\n"},"topics/validator.html":{"url":"topics/validator.html","title":"operators/validator","keywords":"","body":"validator 包\nvalidator 包提供了一系列的方法帮助用户快速生成用于校验参数的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `validator`.\nconst OperatorKind = \"validator\"\n\n// Category distinguishs validation type based on different Validator implementation.\ntype Category string\n\nconst (\n // CategoryVar indicates that the validator can validate basic built-in types.\n // Types: string, int*, uint*, bool.\n CategoryVar Category = \"Var\"\n // CategoryStruct indicates that the validator can validate struct.\n CategoryStruct Category = \"Struct\"\n // CategoryCustom indicates the validator is a custom validator.\n CategoryCustom Category = \"Custom\"\n)\n\n// Validator describes an interface for all validator.\ntype Validator interface {\n definition.Operator\n // Category indicates validator type.\n Category() Category\n // Tag returns tag.\n Tag() string\n // Description returns description of current validator.\n Description() string\n}\n\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n// Struct returns an operator to validate a structs exposed fields, and automatically validates nested structs, unless otherwise specified\n// and also allows passing of context.Context for contextual validation information.\nfunc Struct(instance interface{}) Validator\n\n// String creates validator for string type.\nfunc String(tag string) Validator\n\n// Int creates validator for int type.\nfunc Int(tag string) Validator\n\n// Int64 creates validator for int64 type.\nfunc Int64(tag string) Validator\n\n// Int32 creates validator for int32 type.\nfunc Int32(tag string) Validator\n\n// Int16 creates validator for int16 type.\nfunc Int16(tag string) Validator\n\n// Int8 creates validator for int8 type.\nfunc Int8(tag string) Validator\n\n// Byte creates validator for byte type.\nfunc Byte(tag string) Validator\n\n// Uint creates validator for uint type.\nfunc Uint(tag string) Validator\n\n// Uint64 creates validator for uint64 type.\nfunc Uint64(tag string) Validator\n\n// Uint32 creates validator for uint32 type.\nfunc Uint32(tag string) Validator\n\n// Uint16 creates validator for uint16 type.\nfunc Uint16(tag string) Validator\n\n// Uint8 creates validator for uint8 type.\nfunc Uint8(tag string) Validator\n\n// Bool creates validator for bool type.\nfunc Bool(tag string) Validator\n\n目前支持三种类型的验证,分别对应 golang 基础类型,结构体类型和自定义类型。目前验证方法基于 gopkg.in/go-playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。\n"},"topics/router.html":{"url":"topics/router.html","title":"service/router","keywords":"","body":"router 包\nrouter 包实现了基于前缀树的路由,并提供了三种类型的路由节点:\n\n字符串类型节点\n正则类型节点(包括一个全匹配类型节点)\n剩余路径类型节点\n\n字符串类型节点:\n// stringNode describes a string router node.\ntype stringNode struct {\n handler\n children\n // prefix is the fixed string to match path.\n prefix string\n}\n\n字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与 prefix 完全匹配。\n正则类型节点:\n// index contains the key and it's index of the submatches.\ntype index struct {\n // Key is the name for the value.\n Key string\n // Pos is the index of value in submatches.\n Pos int\n}\n\n// regexpNode contains information for matching a regexp segment.\ntype regexpNode struct {\n handler\n children\n // indices contains all positions to get values from submatches.\n indices []index\n // exp is the regular expression.\n exp string\n // regexp is a regexp instance to match.\n regexp *regexp.Regexp\n}\n\n正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。\n全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的 .*:\n// fullMatchRegexpNode is an optimizing of RegexpNode.\ntype fullMatchRegexpNode struct {\n handler\n children\n // key is the name for the only value.\n key string\n}\n\n这是对正则表达式的一个常用特例的优化,快速进行全匹配。\n正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个 / 之前。\n剩余路径类型节点:\n// pathNode matches all rest path.\ntype pathNode struct {\n handler\n // key is the key for the rest path.\n key string\n}\n\n这个节点匹配剩余所有路径。\n下面用一个例子来说明这几个节点:\nAPI Path: /apis/v1/{regexp:[a-z]{1,2}}/{fullmatch}/{path:*}\nMatched Path: /apis/v1/ab/something/the/rest/path\nGenerated Nodes:\n String Node: /apis/v1/ -> /apis/v1/\n Regexp Node: regexp:[a-z]{1,2} -> ab\n String Node: / -> /\n Full Match Node: fullmatch:.* -> something\n String Node: / -> /\n Path Node: * -> the/rest/path\n\n一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。\n在上面的路径节点中,每个节点都可以绑定一个 Inspector:\n// Inspector can select an executor to execute.\ntype Inspector interface {\n // Inspect finds a valid executor to execute target context.\n // It returns an error if it can't find a valid executor.\n Inspect(context.Context) (Executor, error)\n}\n\n// Executor executs with a context.\ntype Executor interface {\n // Execute executes with context.\n Execute(context.Context) error\n}\n\n路径匹配完成后,会调用匹配链的最后一个节点的 Inspector 来生成一个能够处理当前的路由上下文的 Executor。Inspector 如果能返回一个 Executor,router 会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个 Executor。如果不能返回 Executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。\n中间件接口如下:\n// RoutingChain contains the call chain of middlewares and executor.\ntype RoutingChain interface {\n // Continue continues to execute the next middleware or executor.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call RoutingChain.Continue() and pass the context.\ntype Middleware func(context.Context, RoutingChain) error\n\n对于中间件而言,处理完当前的任务之后只需要调用 RoutingChain 将 Context 通过 Continue 传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用 Continue 实际上是调用的 Executor,因此所有中间件的 Continue 执行完成之后,请求也处理完成了。\n注:这个包里所有的接口都不会被用户直接使用,用户只能通过 definition 包进行 API 定义,然后由 service 包进行路由构建和匹配。\n"},"topics/service.html":{"url":"topics/service.html","title":"service","keywords":"","body":"service 包\nservice 包实现了 Nirvana 的 API 处理框架:\n Service.ServeHTTP()\n ----------------------\n ↓ ↑\n|-----Filters------| ↑\n ↓ ↑\n|---Router Match---| ↑\n ↓ ↑\n|-------------Middlewares------------|\n ↓ ↑\n|-------------Executor---------------|\n ↓ ↑\n|-ParameterGenerators-|-DestinationHandlers-|\n ↓ ↑\n|------------User Function-----------|\nservice 包的入口是 Builder:\n// Builder builds service.\ntype Builder interface {\n // Logger returns logger of builder.\n Logger() log.Logger\n // SetLogger sets logger to server.\n SetLogger(logger log.Logger)\n // Modifier returns modifier of builder.\n Modifier() DefinitionModifier\n // SetModifier sets definition modifier.\n SetModifier(m DefinitionModifier)\n // Filters returns all request filters.\n Filters() []Filter\n // AddFilters add filters to filter requests.\n AddFilter(filters ...Filter)\n // AddDescriptors adds descriptors to router.\n AddDescriptor(descriptors ...definition.Descriptor) error\n // Middlewares returns all router middlewares.\n Middlewares() map[string][]definition.Middleware\n // Definitions returns all definitions. If a modifier exists, it will be executed.\n Definitions() map[string][]definition.Definition\n // Build builds a service to handle request.\n Build() (Service, error)\n}\n\ntype Service interface {\n http.Handler\n}\n\n// DefinitionModifier is used in Server. It's used to modify definition.\n// If you want to add some common data into all definitions, you can write\n// a customized modifier for it.\ntype DefinitionModifier func(d *definition.Definition)\n\n\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nBuilder 构建 Service 来提供 HTTP 服务。因此 Builder 提供了多个方法用于设置生成服务需要的日志,Definition 修改器,请求过滤器,API 描述符。构建完成的 Service 实际上是一个 http.Handler,用来处理请求。\n其中 Definition 修改器用于在生成路由之前修改 API Definition。请求过滤器则是在 Service 执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。\nBuilder 还会将 API Definition 转换为路由需要的数据结构,涉及到以下内容:\n\n对应 Consumes 和 Produces 的 Consumer 和 ProducerConsumer 针对请求的 body,将数据转换为业务函数需要的数据类型(通常是结构体)。Producer 则是将业务函数的返回值转换并写入到响应的 body 中。 \n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n\n对应 Prefab 类型的 Prefab 生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。service 包里提供了一个 Context Prefab 生成器,简单的将参数里的 context 返回出去,供业务函数使用。// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n\n对应 golang 基础类型的转换器这些转换器一般是用于将请求里的 query,header 等简单字符串数据转换为 golang 的基础类型,供业务函数使用。// Converter is used to convert []string to specific type. Data must have one\n// element at least or it will panic.\ntype Converter func(ctx context.Context, data []string) (interface{}, error)\n\n\n用于封装请求的 ValueContainer这个接口是对 Request 的一次封装,方便获取对应位置的字符串数据。// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n\n用于封装响应的 ResponseWriterResponseWriter 是对 http.ResponseWriter 的一个扩展,提供了一些功能方便中间件使用。// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n\n用于合并请求和响应的 ContextHTTPContext 实现了 Context 接口,包装了请求的信息。作为路由上下文使用。// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\n\n用于生成业务函数的参数的 ParameterGeneratorParameterGenerator 是真正的参数生成器,通过调用 Consumer,Converter,Prefab 等来完成业务函数的参数生成。// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n\n用于将业务函数返回值写入 Response 的 DestinationHandlerDestinationHandler 是业务函数返回值处理器,通过调用 Producer 将返回值转换为字节写入响应中。在 DestinationHandler 中,错误是会进行特殊处理的。如果业务函数返回的错误符合 Error 接口,则会根据这个接口来生成错误码和返回数据结构。\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nconst (\n // HighPriority for error type.\n // If an error occurs, ignore meta and data.\n HighPriority int = 100\n // MediumPriority for meta type.\n MediumPriority int = 200\n // LowPriority for data type.\n LowPriority int = 300\n)\n\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n\n\n注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。\n"},"topics/nirvana.html":{"url":"topics/nirvana.html","title":"nirvana","keywords":"","body":"nirvana 包\nnirvana 包在根目录中,实现了 Nirvana Server 和插件系统。这个包放置在根目录中是因为这个包是 Nirvana 提供的用于生成 API Server 的顶级包,而且其依赖的所有包只来自 Nirvana 自身和标准库(config 包依赖了 nirvana 包和其他第三方的包,实际上是一个借助了 Nirvana 和第三方功能的扩展)。\nServer 接口如下:\n// Server is a complete API server.\n// The server contains a router to handle all requests form clients.\ntype Server interface {\n // Serve starts to listen and serve requests.\n // The method won't return except an error occurs.\n Serve() error\n // Shutdown gracefully shuts down the server without interrupting any\n // active connections.\n Shutdown(ctx context.Context) error\n // Builder create a service builder for current server. Don't use this method directly except\n // there is a special server to hold http services. After server shutdown, clean resources via\n // returned cleaner.\n // This method always returns same builder until cleaner is called. Then it will\n // returns new one.\n Builder() (builder service.Builder, cleaner func() error, err error)\n}\n\n创建 Server 需要使用 Config:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Locked checks if the config is locked.\nfunc (c *Config) Locked() bool\n\n// IP returns listenning ip.\nfunc (c *Config) IP() string\n\n// Port returns listenning port.\nfunc (c *Config) Port() uint16\n\n// Logger returns logger.\nfunc (c *Config) Logger() log.Logger\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config\n\n// Config gets external config by name. This method is for plugins.\nfunc (c *Config) Config(name string) interface{}\n\n// Set sets external config by name. This method is for plugins.\n// Set a nil config will delete it.\nfunc (c *Config) Set(name string, config interface{})\n\n// NewServer creates a nirvana server. After creation, don't modify\n// config. Also don't create another server with current config.\nfunc NewServer(c *Config) Server\n\n在 Config 中,存在一些 Server 级别的配置,这些配置是针对当前服务的。而对应的 Configurer 也在当前包中。如果需要对配置进行扩展,增强 Server 功能,则可以增加相应字段,否则应该使用插件机制增加功能。\n在 Config 中可以看到 Config 和 Set 方法,这两个方法就是提供给插件允许插件设置自身的配置的。\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的 Install 方法安装插件。\n"},"topics/config.html":{"url":"topics/config.html","title":"config","keywords":"","body":"config 包\nconfig 包利用 github.com/spf13/cobra 和 github.com/spf13/viper 实现了 Nirvana Command 和配置读取,为 Nirvana 服务启动提供了命令行支持。\nNirvanaCommand 接口如下:\n// NirvanaCommand is a nirvana command.\ntype NirvanaCommand interface {\n // EnablePlugin enables plugins.\n EnablePlugin(plugins ...Plugin) NirvanaCommand\n // AddOption will fill up options from flags/ENV/config after executing.\n // A non-empty prefix is recommended. It's used to divide option namespaces.\n AddOption(prefix string, options ...CustomOption) NirvanaCommand\n // Add adds a field by key.\n // If you don't have any struct to describe an option, you can use the method to\n // add a single field into nirvana command.\n // `pointer` must be a pointer to golang basic data type (e.g. *int, *string).\n // `key` must a config key. It's like 'nirvana.ip' and 'myconfig.name.firstName'.\n // The key will be converted to flag and env (e.g. --nirvana-ip and NIRVANA_IP).\n // If you want a short flag for the field, you can only set a one-char string.\n // `desc` describes the field.\n Add(pointer interface{}, key string, shortFlag string, desc string) NirvanaCommand\n // Execute runs nirvana server.\n Execute(descriptors ...definition.Descriptor) error\n // ExecuteWithConfig runs nirvana server from a custom config.\n ExecuteWithConfig(cfg *nirvana.Config) error\n // Command returns a command for command.\n Command(cfg *nirvana.Config) *cobra.Command\n // SetHook sets nirvana command hook.\n SetHook(hook NirvanaCommandHook)\n // Hook returns nirvana command hook.\n Hook() NirvanaCommandHook\n}\n\nNirvanaCommand 扩展了 nirvana 包的插件能力:\n// CustomOption must be a pointer to struct.\n//\n// Here is an example:\n// type Option struct {\n// FirstName string `desc:\"Desc for First Name\"`\n// Age uint16 `desc:\"Desc for Age\"`\n// }\n// The struct has two fields (with prefix example):\n// Field Flag ENV Key (In config file)\n// FirstName --example-first-name EXAMPLE_FIRST_NAME example.firstName\n// Age --example-age EXAMPLE_AGE example.age\n// When you execute command with `--help`, you can see the help doc of flags and\n// descriptions (From field tag `desc`).\n//\n// The priority is:\n// Flag > ENV > Key > The value you set in option\ntype CustomOption interface{}\n\n// Plugin is for plugins to collect configurations\ntype Plugin interface {\n // Name returns plugin name.\n Name() string\n // Configure configures nirvana config via current options.\n Configure(cfg *nirvana.Config) error\n}\nNirvana Command 要求每个插件提供一个 Option,并且实现 Plugin 接口。用户在 Comamnd 中传递 Option 来启用插件,并且将插件 Option 中的公开字段根据一定的规则(规则参考上面的注释)从 flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。\n由于 Nirvana Config 服务配置的特殊性,config 包提供了一个 Option 来表达这些配置:\n// Option contains basic configurations of nirvana.\ntype Option struct {\n // IP is the IP to listen.\n IP string `desc:\"Nirvana server listening IP\"`\n // Port is the port to listen.\n Port uint16 `desc:\"Nirvana server listening Port\"`\n // Key is private key for HTTPS.\n Key string `desc:\"TLS private key (PEM format) for HTTPS\"`\n // Cert is certificate for HTTPS.\n Cert string `desc:\"TLS certificate (PEM format) for HTTPS\"`\n}\n\n除了插件 Option 以外,config 包会从以下文件列表中读取配置文件:\n目录:\n ./\n ./config/\n {ExecutableFilePath}/\n {ExecutableFilePath}/config/\n /etc/nirvana/\n\n配置文件名:\n nirvana.yaml\n nirvana.toml\n nirvana.json\n如果读取到配置文件,那么除了使用 Option 接收配置以外,还可以通过一些帮助方法获取配置:\n// IsSet checks to see if the key has been set in any of the data locations.\n// IsSet is case-insensitive for a key\nfunc IsSet(key string) bool\n\n// Set sets the value for the key in the override regiser.\n// Set is case-insensitive for a key.\n// Will be used instead of values obtained via\n// flags, config file, ENV, default, or key/value store.\nfunc Set(key string, value interface{})\n\n// Get can retrieve any value given the key to use.\n// Get is case-insensitive for a key.\n// Get has the behavior of returning the value associated with the first\n// place from where it is set. Viper will check in the following order:\n// override, flag, env, config file, key/value store, default\n//\n// Get returns an interface. For a specific value use one of the Get____ methods.\nfunc Get(key string) interface{}\n\n// GetBool returns the value associated with the key as a bool.\nfunc GetBool(key string) bool\n\n// GetDuration returns the value associated with the key as a time.Duration.\nfunc GetDuration(key string) time.Duration\n\n// GetFloat32 returns the value associated with the key as a float32.\nfunc GetFloat32(key string) float32\n\n// GetFloat64 returns the value associated with the key as a float64.\nfunc GetFloat64(key string) float64\n\n// GetInt returns the value associated with the key as a int.\nfunc GetInt(key string) int\n\n// GetInt8 returns the value associated with the key as a int.\nfunc GetInt8(key string) int8\n\n// GetInt16 returns the value associated with the key as a int.\nfunc GetInt16(key string) int16\n\n// GetInt32 returns the value associated with the key as a int32.\nfunc GetInt32(key string) int32\n\n// GetInt64 returns the value associated with the key as a int64.\nfunc GetInt64(key string) int64\n\n// GetString returns the value associated with the key as a string.\nfunc GetString(key string) string\n\n// GetStringSlice returns the value associated with the key as a []string.\nfunc GetStringSlice(key string) []string\n\n// GetUint returns the value associated with the key as a uint.\nfunc GetUint(key string) uint\n\n// GetUint8 returns the value associated with the key as a uint.\nfunc GetUint8(key string) uint8\n\n// GetUint16 returns the value associated with the key as a uint.\nfunc GetUint16(key string) uint16\n\n// GetUint32 returns the value associated with the key as a uint32.\nfunc GetUint32(key string) uint32\n\n// GetUint64 returns the value associated with the key as a uint64.\nfunc GetUint64(key string) uint64\n\n注:如果在 nirvana 包中对 Config 进行了扩展,涉及到字段的改变,也需要在这个包中修改 Option 和相应的功能。\n"},"topics/rest.html":{"url":"topics/rest.html","title":"rest","keywords":"","body":"rest 包\nrest 包提供了一个简单的 REST Client 用于访问 API 服务。\n在这个包中,主要包含三个概念:Config,Client 和 Request。Config 是 Client 的配置,用于创建 Client。而 Request 则由 Client 创建,用来表示每一个 REST 请求。\n// RequestExecutor implements a http client.\ntype RequestExecutor interface {\n Do(req *http.Request) (*http.Response, error)\n}\n\n// Config is rest client config.\ntype Config struct {\n // Scheme is http scheme. It can be \"http\" or \"https\".\n Scheme string\n // Host must be a host string, a host:port or a URL to a server.\n Host string\n // Executor is used to execute http requests.\n // If it is empty, http.DefaultClient is used.\n Executor RequestExecutor\n}\n\n// Client implements builder pattern for http client.\ntype Client struct {\n ...\n}\n\n// NewClient creates a client.\nfunc NewClient(cfg *Config) (*Client, error)\n\n// Request creates an request with specific method and url path.\n// The code is only for checking if status code of response is right.\nfunc (c *Client) Request(method string, code int, url string) *Request\n\n// Request describes a http request.\ntype Request struct {\n ...\n}\n\n// Path sets path parameter.\nfunc (r *Request) Path(name string, value interface{}) *Request\n\n// Query sets query parameter.\nfunc (r *Request) Query(name string, values ...interface{}) *Request\n\n// Header sets header parameter.\nfunc (r *Request) Header(name string, values ...interface{}) *Request\n\n// Form sets form parameter.\nfunc (r *Request) Form(name string, values ...interface{}) *Request\n\n// File sets file parameter.\nfunc (r *Request) File(name string, file interface{}) *Request\n\n// Body sets body parameter.\nfunc (r *Request) Body(contentType string, value interface{}) *Request\n\n// Meta sets header result.\nfunc (r *Request) Meta(value *map[string]string) *Request\n\n// Data sets body result. value must be a pointer.\nfunc (r *Request) Data(value interface{}) *Request\n\n// Do executes the request.\nfunc (r *Request) Do(ctx context.Context) error\n\nRequest 保存了一个请求的数据,用 Path,Query,Header,Form,File,Body 来设置请求的相关值,Meta 和 Data 来设置用于接收响应的值(都是指针)。然后 Do 用于真正发起请求,并完成 Meta 和 Data 的填充。\nRequest 的方法与 API Definition 的除了 Prefab 和 Error 之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于 Prefab 是由服务端生成而不由客户端提交,Error 由 Do 方法返回,因此这两种类型没有对应的方法。\n注:这个 Client 会被由命令 nirvana client 生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。 \n"},"topics/utils.html":{"url":"topics/utils.html","title":"utils","keywords":"","body":"utils 系列包\nutils 系列包包含:\n\napi 包,用于读取项目源码,并生成与 API 有关的所有数据结构,产出的结构可用于生成文档和客户端。\nbuilder 包,利用 api 包读取源码并生成 API 数据。\ngenerators/golang 包,利用 api 包提供的数据结构生成 golang 客户端。\ngenerators/swagger 包,利用 api 包提供的数据结构生成 API 文档。\ngenerators/utils 包,提供公共工具给其他生成器使用。\nprinter 包,提供了一个在 Terminal 中打印表格的功能。\nproject 包,提供了基础工具用于读取项目配置文件,通常是 nirvana.yaml。\n\n除了 printer 包以外,其他包都是用于生成文档和客户端用的。\n在 api 包中,提供了如下功能:\n\n对应 golang type 的 Type为了能让 golang type 能转换为可读的数据结构,构建了 Type 相关类型:\n// TypeName is unique name for go types.\ntype TypeName string\n\n// TypeNameInvalid indicates an invalid type name.\nconst TypeNameInvalid = \"\"\n\n// StructField describes a field of a struct.\ntype StructField struct {\n // Name is the field name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package path that qualifies a lower case (unexported)\n // field name. It is empty for upper case (exported) field names.\n PkgPath string\n // Type is field type name.\n Type TypeName\n // Tag is field tag.\n Tag reflect.StructTag\n // Offset within struct, in bytes.\n Offset uintptr\n // Index sequence for Type.FieldByIndex.\n Index []int\n // Anonymous shows whether the field is an embedded field.\n Anonymous bool\n}\n\n// FuncField describes a field of function.\ntype FuncField struct {\n // Name is the field name.\n Name string\n // Type is field type name.\n Type TypeName\n}\n\n// Type describes an go type.\ntype Type struct {\n // Name is short type name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package for this type.\n PkgPath string\n // Kind is type kind.\n Kind reflect.Kind\n // Key is map key type. Only used in map.\n Key TypeName\n // Elem is the element type of map, slice, array, pointer.\n Elem TypeName\n // Fields contains all struct fields of a struct.\n Fields []StructField\n // In presents fields of function input parameters.\n In []FuncField\n // Out presents fields of function output results.\n Out []FuncField\n // Conflict identifies the index of current type in a list of\n // types which have same type names. In most cases, this field is 0.\n Conflict int\n}\n\n\n对应 Nirvana API 的 Definition此处的 Definition 大部分字段与 definition 包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source definition.Source\n // Name is the name to get value from a request.\n Name string\n // Description describes the parameter.\n Description string\n // Type is parameter object type.\n Type TypeName\n // Default is encoded default value.\n Default []byte\n}\n\n// Result describes a function result.\ntype Result struct {\n // Destination is the target for the result.\n Destination definition.Destination\n // Description describes the result.\n Description string\n // Type is result object type.\n Type TypeName\n}\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Type is result object type.\n Type TypeName\n // Instance is encoded instance data.\n Instance []byte\n}\n\n// Definition is complete version of def.Definition.\ntype Definition struct {\n // Method is definition method.\n Method definition.Method\n // HTTPMethod is http method.\n HTTPMethod string\n // HTTPCode is http success code.\n HTTPCode int\n // Summary is a brief of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function TypeName\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n\n用于表示代码注释的 Comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是 +nirvana:api=option:\"value\"。\nconst (\n // CommentsOptionDescriptors is the option name of descriptors.\n CommentsOptionDescriptors = \"descriptors\"\n // CommentsOptionModifiers is the option name of modifiers.\n CommentsOptionModifiers = \"modifiers\"\n // CommentsOptionAlias is the option name of alias.\n CommentsOptionAlias = \"alias\"\n // CommentsOptionOrigin is the option name of original name.\n CommentsOptionOrigin = \"origin\"\n)\n\n// Comments is parsed from go comments.\ntype Comments struct {\n lines []string\n options map[string][]string\n}\n\nvar optionsRegexp = regexp.MustCompile(`^[ \\t]*\\+nirvana:api[ \\t]*=(.*)$`)\nvar options = []string{CommentsOptionDescriptors, CommentsOptionModifiers, CommentsOptionAlias}\n\n// ParseComments parses comments and extracts nirvana options.\nfunc ParseComments(comments string) *Comments\n\n\n用于分析源码的 AnalyzerAnalyzer 可以读取源码,获取结构对象和注释信息。\n// Analyzer analyzes go packages.\ntype Analyzer struct {\n ...\n}\n\n// NewAnalyzer creates a code ananlyzer.\nfunc NewAnalyzer(root string) *Analyzer\n\n// Import imports a package and all packages it depends on.\nfunc (a *Analyzer) Import(path string) (*types.Package, error)\n\n// PackageComments returns comments above package keyword.\n// Import package before calling this method.\nfunc (a *Analyzer) PackageComments(path string) []*ast.CommentGroup\n\n// Packages returns packages under specified directory (including itself).\n// Import package before calling this method.\nfunc (a *Analyzer) Packages(parent string, vendor bool) []string\n\n// FindPackages returns packages which contain target.\n// Import package before calling this method.\nfunc (a *Analyzer) FindPackages(target string) []string\n\n// Comments returns immediate comments above pos.\n// Import package before calling this method.\nfunc (a *Analyzer) Comments(pos token.Pos) *ast.CommentGroup\n\n// ObjectOf returns declaration object of target.\nfunc (a *Analyzer) ObjectOf(pkg, name string) (types.Object, error)\n\n\n集合上述所有功能的 ContainerContainer 读取源码并进行分析,产出 API 相关的所有定义和类型信息。API 定义和类型信息可以用来生成 API 文档和客户端。\n// Definitions describes all APIs and its related object types.\ntype Definitions struct {\n // Definitions holds mappings between path and API descriptions.\n Definitions map[string][]Definition\n // Types contains all types used by definitions.\n Types map[TypeName]*Type\n}\n\n// Container contains informations to generate APIs.\ntype Container struct {\n ...\n}\n\n// NewContainer creates API container.\nfunc NewContainer(root string) *Container\n\n// AddModifier add definition modifiers to container.\nfunc (ac *Container) AddModifier(modifiers ...service.DefinitionModifier)\n\n// AddDescriptor add descriptors to container.\nfunc (ac *Container) AddDescriptor(descriptors ...definition.Descriptor)\n\n// Generate generates API definitions.\nfunc (ac *Container) Generate() (*Definitions, error)\n\n\n\nbuilder 包相对 api 包来说就简单很多了,这个包里包含一个 API Builder:\n// APIBuilder builds api definitions by specified package.\ntype APIBuilder struct {\n ...\n}\n\n// NewAPIBuilder creates an api builder.\nfunc NewAPIBuilder(root string, paths ...string) *APIBuilder\n\n// Build build api definitions.\nfunc (b *APIBuilder) Build() (*api.Definitions, error)\n\nAPI Builder 首先会利用 Analyzer 去读取指定路径的源码,然后从中找到标记了 modifiers 和 descriptors 选项的注释。两个选项的值对应两个函数,分别返回 Modifier 和 Descriptor。然后动态生成一个 main.go 文件 import 这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用 api 包的 Container 来生成 API 定义和类型信息。API Builder 执行 main.go 后通过 stdout 取得返回值,反序列化成 Definitions 结构,然后再返回给 API Builder 的调用者。这样就完成了对一个项目的 API 信息的提取。\ngolang 包和 swagger 包实际上都是利用了 API Builder 的返回结果,构建出相应的客户端和文档。golang 包会为每一个 API 生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了 rest 包 Client 接口。swagger 包则是利用了 github.com/go-openapi/spec 将 API 定义和类型转换成了 openapi 的定义。\n"},"topics/command.html":{"url":"topics/command.html","title":"cmd/nirvana","keywords":"","body":"nirvana 命令\nNirvana 命令对应的包在 cmd/nirvana 中,目前包括三个命令:\n\ninit,用于初始化标准项目目录结构和必要文件\napi,用于生成 API 文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)\nclient,用于生成 API 对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。\n\n每个命令都是一个目录,互相之间不干扰。每个目录都有一个 init.go 的文件用于把当前的命令加入到 Nirvana 根命令中,比如:\npackage project\n\nimport \"github.com/spf13/cobra\"\n\n// Register registers all commands.\nfunc Register(root *cobra.Command) {\n root.AddCommand(newInitCommand())\n}\n\n然后在 main.go 中 import 这个包并进行命令注册:\nimport (\n \"github.com/caicloud/nirvana/cmd/nirvana/api\"\n \"github.com/caicloud/nirvana/cmd/nirvana/client\"\n \"github.com/caicloud/nirvana/cmd/nirvana/project\"\n \"github.com/caicloud/nirvana/log\"\n \"github.com/spf13/cobra\"\n)\n\nvar root = &cobra.Command{\n Use: \"nirvana\",\n Short: \"Nirvana toolchains\",\n}\n\nfunc main() {\n project.Register(root)\n api.Register(root)\n client.Register(root)\n if err := root.Execute(); err != nil {\n log.Fatalln(err)\n }\n}\n\n接下来以 init 命令为例,说明单个命令的基本结构:\nfunc newInitCommand() *cobra.Command {\n options := &initOptions{}\n cmd := &cobra.Command{\n Use: \"init /path/to/project\",\n Short: \"Create a basic project structure\",\n Long: options.Manuals(),\n Run: func(cmd *cobra.Command, args []string) {\n if err := options.Validate(cmd, args); err != nil {\n log.Fatalln(err)\n }\n if err := options.Run(cmd, args); err != nil {\n log.Fatalln(err)\n }\n },\n }\n options.Install(cmd.PersistentFlags())\n return cmd\n}\n\ntype initOptions struct {\n Boilerplate string\n Version string\n Registries []string\n ImagePrefix string\n ImageSuffix string\n BuildImage string\n RuntimeImage string\n}\n\nfunc (o *initOptions) Install(flags *pflag.FlagSet) {\n flags.StringVar(&o.Boilerplate, \"boilerplate\", \"\", \"Path to boilerplate\")\n flags.StringVar(&o.Version, \"version\", \"v0.1.0\", \"First version of the project\")\n flags.StringSliceVar(&o.Registries, \"registries\", []string{}, \"Docker image registries\")\n flags.StringVar(&o.ImagePrefix, \"image-prefix\", \"\", \"Docker image prefix\")\n flags.StringVar(&o.ImageSuffix, \"image-suffix\", \"\", \"Docker image suffix\")\n flags.StringVar(&o.BuildImage, \"build-image\", \"golang:latest\", \"Golang image for building the project\")\n flags.StringVar(&o.RuntimeImage, \"runtime-image\", \"debian:jessie\", \"Docker base image for running the project\")\n}\n\nfunc (o *initOptions) Validate(cmd *cobra.Command, args []string) error\n\nfunc (o *initOptions) Run(cmd *cobra.Command, args []string) error\n\n基本结构如下:\n\n一个创建命令的私有函数 newInitCommand\n一个表示当前命令的所有参数的 initOptions\nOptions 实现的 Install 方法用于安装 flag 到命令中\nOptions 实现的 Validate 方法用于验证参数是否正确\nOptions 实现的 Run 方法真正执行命令对应的逻辑\n\n\n\n如果需要新增命令扩展 Nirvana 的功能,需要按照上述结构进行开发。\n"},"topics/routes.html":{"url":"topics/routes.html","title":"Routes","keywords":"","body":"Routes\nDefinitions\nDefining routes and be as easy as defining such functions:\nfunc handler(request Request) (Response, error) {\n // do stuff\n // return data\n // or error if anything wrong happened\n}\n\nHowever we can do a lot more with Nirvana framework!\nDeclarative approach to routes definition\nIn Nirvana, routes definitions are documentations, i.e. you will only need to follow the DRY rule, define your routes (w.r.t specific formats) and then we'll try to cover these for you:\n\nbasic test-case generation\nOpenAPI docs generation\nparameter checking (against function signatures)\netc.\n\ndefinition.Descriptor struct\nThis is the core data structure that you'll use, and a typical example looks like this:\ndefinition.Descriptor{\n Path: \"/api\",\n Description: \"here goes your api description\",\n Produces: []string{\"text/plain\"},\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: func(ctx context.Context) (string, error) {\n return \"Hello World!\", nil\n },\n Parameters: []definition.Parameter{},\n Results: []definition.Result{\n {\n Type: definition.Data,\n },\n {\n Type: definition.Error,\n },\n },\n },\n },\n}\n\nTODO: add more\n"},"topics/cli.html":{"url":"topics/cli.html","title":"CLI","keywords":"","body":"CLI\nCLI, or command-line interface is where you put the switches or entrances to your application's different functionalities. You can always adopt a micro-service approach and follow UNIX philosophy to build dedicated application for specific use-case, as you should always do. However you'll still need some good and consistent way to expose different options for people / system that run your application. Therefore it is very good practice to follow good convention and make your CLI unambiguous and first class API as well.\nIn Nirvana, we didn't build CLI framework from scratch and instead adopt Cobra as a default baseline, with some small addition just to boost your experience.\nTODO: more details to follow\n"},"topics/validation.html":{"url":"topics/validation.html","title":"Validation","keywords":"","body":"Validation\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :) (checkout guide below to add your own validation)\n\nFor full example code, see validator.\n"},"topics/openapi.html":{"url":"topics/openapi.html","title":"Open API","keywords":"","body":"OpenAPI\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +caicloud:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\n"},"topics/metrics.html":{"url":"topics/metrics.html","title":"Metrics","keywords":"","body":"Metrics\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig(\"\", 8080).\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 -H 'Content-type: application/json' 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"application/json\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in microseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"125000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"250000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"500000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"2e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"4e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"8e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"125000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"250000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"500000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"2e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"4e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"8e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 53\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 89\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 98\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 0\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\n"}}} \ No newline at end of file +{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["!=","\"\"","\"${customer}","\"/\",","\"/api/v1\",","\"/api/v1/some\".","\"/child\",","\"/echo\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"alice\",","\"apach","\"application/x","\"content","\"context\"","\"correspond","\"echo","\"error","\"first","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"messag","\"message\":","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"openapi","\"pluginname\"","\"result","\"second","\"thi","\"v1.0.0\",","\"valid","#","$","${customer})","${name}","%s:%d\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'{\"name\":","(","(*spec.swagger,","(and","(apachebench)","(bool,","(e.g.","(i","(string,",")","*/*","*api.message)","*body)","*nirvana.config)","*plugininstaller)","+nirvana:openapi=tru",".","...","./examples/get","/","//","/debug/pprof","/echo","/echo,","/echo[?msg=]","/go/package/to/your/generated/funct","/go/package/to/your/typ","/metric","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","0","0202","1","10","10,","100)","1000","1000,","101","11","11:18:50.235+08","126","16:34:38.663+08","1:","2.0","2.0\",","200","201","202","204","260","28","2:","2>&1","3","41","500","500,","50554","507","55","73","8080","90","90m.","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.result{","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[text/plain]","\\","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`default`","`json:\"message\"","`json:\"name\"","`name`","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source`","`source`.","ab","abov","above.","above:","accept","accept:","access","actual","ad","add","advanc","aforement","aim","allow","alway","anoth","api","api\",","api.getopenapidefinitions,","appear","application.","application/json\"","arg","around","array","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","avoid","back","basic","basics.","before.","behavior","behavior,","behavior.","below","best","between","bit","block","bodi","body,","body.","body.nam","body.name)","bool):","bool,","box","broken","build","builder","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","built","busniess","by:","c.set(externalconfigname,","caicloud.","call","capabl","care","careful,","case","case,","categori","certain","cfg","cfg)`","chang","charact","characters,","characters.","check","checkout","child","children","children:","children;","cli","client","client,","client.","cmd","code","code()","code,","code.","collect","combin","combination.","come","comma","command,","common","complex","complic","concept","config","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.port())","configa","configa(fielda","configb","configb()","configur","configuration,","configuration:","configure(","configurers:","conflict","consist","const","consum","consume.","consumes.","consumes:","contact:","contain","content","contention(en","contenttyp","context","context,","context.context","context.context,","contribut","contriv","conveni","convention,","convert","convertor,","core","core,","correspond","counter","cpu","creat","create:","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","d","data","data\"","data.","decid","declar","default","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor.","definition.descriptor{","definition.error,","definition.get,","definition.middlewar","definition.paramet","definition.produc","definition.query,","definition:","definitions,","definitions.","definitions:","delet","depend","deriv","describ","descript","description:","descriptor","descriptor'","descriptor,","descriptor.","descriptor:","descriptors.","design","destin","destination:","detail","details,","develop","developmenet","diagnos","differ","direct","directli","disabl","disable()","disabled.","discouraged.","distribut","doc","doc.","doc.go","docs,","docs.","doctoc","document","documentation.","don't","done","done,","draft","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","empti","enabl","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","err","error","error)","error,","error.","error:field","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","etc","etc.","etc;","even","ex.","exact","exampl","example,","example:","execut","expired.","expos","extens","extern","externalconfignam","factori","factory.","facts:","fail","false.","fast","fatal","featur","few","field","fielda.","fieldb.","fields.","fieldtype)","file","file.","filter","final","finally,","find","first","first.","float*,","float64((time.since(starttime))","flow","follow","form","format","format.","format:","formatt","found\")","found\",","framework","framework:","from.","full","func","func(c","func(ctx","function","function.","function:","functions.","funtion","future.","gen","gener","generation,","get","get/list","get/sav","getdefinitions:","gethttpclient(req),","getopenapidefinit","getopenapidefinitions.","getopenapideinit","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","glance,","global","glog.","go","goal","golang","grep","guid","h","handl","handler","handler.","header","header.","headers:","help","helper","here","high","histogram","hold","hood,","http","http://host:port/metrics.","http://localhost:8080/echo","http://localhost:8080/metr","httpctx","httpctx.request()","httpctx.responsewriter()","https://editor.swagger.io/,","i)","i.e.","id","idea","ident","ignored.","impact","implement","implementation,","implemented:","import","improv","includ","include:","incom","increas","index","indic","individu","info","info:","infof","infoln","infoprops:","inform","inherit","init()","inject","input","input(","input,","input.","insid","instal","install(build","install/initi","instanc","instead,","instrument","instrumentation.","int","int)","int*,","int,","int.","integr","intercept","interfac","interface,","interface:","interface{}","intern","introduc","introduct","ip","ip.","is,","it!","it'","it.","it:","json","json.newencoder(os.stdout)","keep","key","key,","key:","kickoff","knob","know","language:","larger","last","latenc","latencies.","layout","length","let'","level","level,","librari","license,","license:","list","listen","load;","log","log.fatal(err)","log.infof(\"listen","log.v(4).info","logger","logic","longer","look","lot","main","main()","make","management,","mani","map[string]str","match","mean","mechan","mention","messag","message()","message,","message.","meta","method","method,","method.","method:","methods,","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","microsecond","middlewaar","middlewar","middlewares.","middlewares:","millisecond","mime","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","modifi","moditi","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","multipl","myself\"}'","n","name","name!\")","name\"),","name()","name,","name.","name:","names.","namespac","namespace.","namespace:","natur","necessary,","need","need.","net/http/pprof.","new","newlin","newmetricsmiddleware(namespac","next","next.continue(ctx)","nil","nil)","nil,","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana:","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","non","note","notice:","now","number","obey","object","occurs,","on","onc","one,","open","openapi","openapi\",","openapi()","openapi,","openapi.","oper","operator'","operator,","operator.","operator;","operators.","operators/valid","operators:","option","optional.","order.","others).","out","output","overrid","p","p90","packag","package,","package.","package:","page.","panic(err)","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parameters,","parameters.","parameters:","parent","parent'","pars","part","partial","pass","patch","path","path(path","path).observe(elapsed)","path,","path.","path:","paths:","performant,","place","playground/validator.v9","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","point","popular?","port","port.","post","pprof","pprof,","pre","prefab","prefix","prefix,","prevent","previou","produc","produce.","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","prometheu","propos","provid","put","queri","quick","quit","random","readable.","ready,","receiv","refer","reflect","regist","relationship","repli","req","req.header.get(\"cont","req.url.path","request","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests:","requir","resourc","resource,","resource.","resp","respons","response.","result","result\",","result.","results,","results.","results:","retrun","return","rewrit","router.","run","run:","same","satisfi","scope","second","see","seen","send","sens","sent.","separ","serv","server","server\",","server,","server.","servic","service!","service.builder,","service.httpcontextfrom(ctx)","service;","services.","set","settings:","sever","severity.","show","shown","signatur","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","sleep","smoothli","snippet","somedefinitions,","somemiddlewar","somemiddlewares,","something.","sourc","source,name[,default=value]","source.","source:","spam","spec.","spec.infoprops{","specif","specifi","specification:","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starts.","starttim","static","statu","step","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","string","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","strongli","struct","struct\",","struct,","struct.","struct:","structur","struct{}","stuff","sub","success","success\",","such","summari","support","support,","support.","sure","swagger","swagger,","swagger.json","symbol","tabl","table:","tag","tags.","take","target","tbd","teach","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","then,","therefore,","though","three","time","time.millisecond)","time.now()","times,","tire","title:","to:","total.","trace","tracing,","translat","tri","two","type","type\"),","type.","type:","types:","u","uint*,","under","understand","unimport","uninstal","uninstall(build","uniqu","unlik","updat","upgrad","url","url:","urlencoded\"","us","usability.","usag","usage.","use:","used.","user","user,","usual","usually,","valid","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation,","validation.","validation:","validator'","validator.","validator.int,","validator.newcustom(","validator.str","valu","value.","values.","var","var,","velocity.","verb","verb,","verbos","veri","verifi","version","version:","via","via:","view","want","warn","we'll","we'v","wealth","well","whole","within","won't","works!","works:","write","written","www","x","yaml","you'll","you'v","{","{...)","{...}","|","}","})","},"],"guides/project.html":["\"\"","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/someapi\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/myproject","$path",".","./bin/myproject","./build/myproject/dockerfil","./myproject","/apis/v1","1.11)中,若项目处于","8080:8080","8080。","=","api","api.go","api。api","bin","build","cd","cmd","contacts:","contain","convert","curl","debian:jessi","definit","dep","description:","descriptor","descriptors.go","dockefile),还有一个","docker","dockerfil","email:","ensur","export","filter","filters.go","first","framework","github.com/caicloud/nirvana/cmd/nirvana","github.com/golang/dep/cmd/dep","go","go111module=on","golang/dep","golang:latest","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","hosts:","http","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages:","init","ip","localhost:8080","logo","main.go","maintain","make","makefil","makefile,只需要使用简单的","manag","messag","message.go","middlewar","middlewares.go","mod","modifi","modifiers.go","modul","myproject","myproject:v0.1.0","name:","nirvana","nirvana.yaml","nobodi","nobody@nobody.io","p","packag","pkg","prefix:","prefix,那么","project","project:","readme.md","regexp","regexp:","replac","replacement:","request","rules:","run","schemes:","server","u","us","v","v1","vendor","version","version.go","versions:","│","└──","├──","。","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","中也提供了直接打包成镜像的命令:","中间件","中):","为被替换为","也提供对","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","会生成一个完整的","使用","修改器","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","功能:","参数:","启动时会打印出","命令启动容器,然后进行访问:","命令就可以完成编译工作:","和","在","在当前","在服务启动之后,可以通过浏览器或者命令行访问","在需要发布的时候,通常需要打包成镜像的形式,在","在项目的","如果设置了","字段无效","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","定义","定义相关的代码都在这个目录中","定义,可以修改或删除","对应","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就能够看到","或域名,可以有多个","所有与","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","描述符","文档生成和客户端生成会依赖这个配置文件进行","服务使用的协议,只能填写","正则表达式,用于匹配路径","此时在","每个","比如设置","然后就可以直接使用命令创建项目(请确保","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","用于文档和客户端生成","的","的命令行和其他依赖工具:","的支持。","的运行,只用于描述项目的信息以及区分不同版本的","的返回结果。","的需要的包定义文件","目录下,则还需要运行一下命令开启","目录中就能看到编译后的二进制文件,直接运行:","直接编译运行","编译并打包成","编译运行","范例,因此可以直接运行查看效果。","访问","语言版本(version","语言版本升级到最新版本","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径替换,因此需要正确设置版本规则。","过滤器","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","进行包管理","那么","配置文件,用于描述项目的基本信息和结构。","镜像","项目","项目。项目结构如下:","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","首先将",",然后在创建项目时添加"],"guides/api.html":["\"/messages\",","\"/messages/{message}\",","\"count\",","\"exampl","\"get","\"list","\"messag","\"number","\"queri","\"thi","&message{","(*message,","([]message,","...","//","/apis/v1/resourc","/apis/v1/resources/{resource}","0;","10,","200","201","202","204",":=","=","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.parameter{","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`source:\"header,cont","`source:\"query,start,default=100\"`","anotherautostruct","api","api。","api,用于获取一条消息:","application/x","array\",","asynccr","asyncdelet","asyncpatch","asyncupd","auto","bodi","body,但是","content","content\",","content\"}","content:","contenttyp","context.context,","count","count)","creat","data","db","def.dataerrorresults(\"a","def.definition{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.query,","default:","default={value}","definit","definitions:","delet","describ","description:","descriptor","descriptor。","destin","entry.","error","error)","exampl","example\",","example\",\"content\":\"exampl","file","form","func","function:","getmessag","getmessage(ctx","get。","get,两者没有区别。","golang","header","http","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","id","id\"),","id\",","id,","id.","id/nam","id:","init","init()","int","int)","json","key","list","listmessag","listmessages(ctx","make([]message,","map[string]string,会写入","messag","message\"),","message\",","message.getmessage,","message.listmessages,","messages\"),","messages\",","messages.","meta","method","method:","multipart/form","name:","nil","nirvana","number","parameters:","patch","path","path:","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","post","prefab","put","queri","register([]def.descriptor{{","request","respons","rest","results:","return","server","sourc","source:","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","specifi","start","string","struct","summari","summary:","tag","titl","title:","type","type\"`","updat","url","urlencod","var","www","{","{\"id\":100,\"title\":\"thi","}","},","}...)","与业务函数的参数名称无关。","业务函数","业务函数返回结果如何放到请求的响应中。","中定义的动作以及对应的","中携带","中,我们建议所有的","中,所有的","之后,编译运行。然后访问","从","从请求的那一部分取得数据,然后传递给业务函数。","但是为了使","修改一个资源的部分内容","内部,比如一个","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","列表的","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","删除一个资源","参数值来源于","参数值来源于当前","参数名称,作为","参数描述","参数来源","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","名称","名称为","和","因为只获取一条消息,此处为","在","在一个","在使用","如果有多个","如果需要给字段设置默认值,则需要使用","定义。","定义了","定义了一个返回","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义,再对应业务函数:","定义:","对于","对于没有","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","成功状态码","或","所有的","接下来我们给项目增加一个","描述","数组包含了这个路径下的所有定义。","方法","方法。","方法。比如某个","方法包。","方法就应该是","方法都是语义层面的,为的是提高","无","是一个短语,用于描述这个","是从","是返回一个资源列表的,那么","更新一个资源(幂等)","有","根据上面的","根据资源唯一","概念","添加","用于描述一个业务函数的参数的来源和默认值。","的","的字段。","的字段。忽略所有没有","的形式。","的版本号。下表中展示了","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的结构体类型,会递归遍历以寻找带有","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型的","类型):","结构体,可以组合成一个:","给项目添加一个","而不是","范例如下:","获取一条消息的","获取资源","获取资源列表","详细描述这个","请求中使用的都是","路径","返回值可以是任意结构,自动转换并写入到","返回值目标","返回的是资源数组,所以使用","这个","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个返回值类型必须是","这是一个工具方法,用于快速生成一个参数结构。","这里添加的业务函数都是以","进行描述的。首先看一个","都是通过","都遵守","里取值。","里获取的。","链接","错误类型,必须是","风格,并且在","默认值"],"guides/doc.html":["$","/home/go/src/myproject","0702","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","8080","api","api.go:179","api.go:87","api.go:95","browser","default","directori","doc","http","http://127.0.0.1:8081","info","ip","listen","nirvana","open","packag","pkg/api","pleas","project","root","serv","serve=\":8081\"","specified,","view","|","会读取","公开给用户使用。于是我们需要给","即可查看文档。","和端口。","在完成了","并使用","提供了一个命令用于从项目中生成文档:","文档","文档截图如下:","服务用于访问这个文档。打开浏览器,访问","生成","的开发工作后,我们需要将","的用户提供一个文档,方便用户阅读。nirvana","端口提供服务。为了防止端口冲突,可以使用","设置监听的","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","这就表示文档生成成功,并且提供了一个","默认情况下,nirvana"],"guides/client.html":["!=","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"context\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","\"myproject/client/v1\"","$","&client{","&client{client},","&client{}","(","(*client,","(c","(interface,","(messag","(message1",")","*client","*client)","*message,","*rest.client","*rest.config)","*v1.client","./client","./client.go","./v1/client.go","./v1/types.go","//","/home/go/src/myproject","0702","10)","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","200,",":=","=","[]message,","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","api","c","c,","c.rest.request(\"get\",","c.v1","c.v1,","cli","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","clients.","contain","content","context.context,","count","count).","creat","data(&messages).","data(message1).","default","describ","directori","do(ctx)","entry.","err","error","error)","func","gener","getmessag","getmessage(ctx","golang","host:","id","id.","import","info","int","int)","interfac","io.read","io.readclos","listmessag","listmessages(ctx","log.fatal(err)","log.info(msgs)","main()","messag","message).","message1","messages.","msgs,","mustnewcli","mustnewclient(cfg","myproject/cli","new","new(message)","newclient","newclient(cfg","newclient(cfg)","nil","nil,","nirvana","nirvana.yaml","occurs.","output","packag","panic","panic(err)","path(\"message\",","pkg/api","project","query(\"count\",","rest","rest.newclient(cfg)","return","root","scheme:","specified,","string","struct","titl","type","types.go","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","var","version","{","|","}","})","└──","├──","中定义。api","使用客户端","依赖的结构体都会被提取出来并生成到","函数即可:","和","多客户端整合。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","指定其他输出目录(目前仅支持生成","支持良好,因此在","文件中,方便客户端使用。","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","生成代码","生成代码:","生成代码:","生成客户端","生成的客户端代码如下:","生成的客户端是版本化的,版本在","的参数和返回值中,尽量避免使用其他接口。","目前客户端生成对接口的支持还不完善,仅仅对","目录下生成","该命令默认会在","调用,可以生成客户端以供使用:","输出日志如下(项目路径和日志时间会有所不同):","限制"],"concepts/cp.html":["!=","&&","//","204",":=","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","application/json","application/octet","application/x","application/xml","conet","consum","consume(r","consumers:","consumer:","content","contenttyp","contenttype()","data","err","error","file","form","github.com/caicloud/nirvana/servic","handl","http","interfac","interface{})","io.read","io.reader,","io.writer,","json.marsh","json.unmarsh","log.fatal(err)","marshal","mime","multipart/form","newsimpleserializer(contenttype)","nil","nirvana","object","object.","pars","produc","produce(w","producers,并且他们的行为和","producers:","producer。","producer:","r","reader","return","serial","servic","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","specif","stream","string","text/plain","type","type.","unmarsh","urlencod","v","v.","w.","write","writer.","www","xml.marshal","xml.unmarsh","{","}","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","与","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","于","则负责将业务函数的返回结果写入到响应体中。","包提供了相应的工具用于注册用户自己的","包路径:","去读取数据并进行类型转换。","只能生成","可能不能满足实际使用需求。因此","和","在","在业务的实际场景中,默认提供的","在接收到","在需要生成","如果接收类型是","如果类型符合","实现了这个接口后,通过","将数据写入到响应。","将类型转换为字节数据写入到响应体中。","并成为","快速生成","或","接口。其中","接口或者是","描述","提供了","注册","添加","用于将请求体中的数据转换为业务函数需要的类型,而","的","的工具","的注册方法即可注册","空的","类型","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","自动处理数据转换,nirvana","说明了请求和响应中的数据类型。为了根据","请求中,content","进行解析。","通常对应于","通常情况下,我们需要快速添加一些","需要实现接口:","默认提供的"],"concepts/operator.html":["!=","\"converter\"}","\"count\",","\"list","\"number","\"queri","\"validator\"}","([]message,","(anytype,","(c","(interface{},","(uint,","*converterforanobject)","*validatorforanobject)","//","0;","10,","1,并且把",":=","=","[]def.operator{","[]def.parameter{","[]definition.operator{newcustom(f,\"custom","anoth","anytyp","anytype)","api","array\",","bool(tag","built","byte(tag","call","concret","context.context,","convert","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","count","count)","creat","custom","data","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","definit","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","descript","description\")}","description:","doc","done","err","error","error)","error)。其中参数的","error.","error。其中","example:","exp:","f","f(context.context,","f.","field","file","for(f","func","func(ctx","func.","function:","gen.","gener","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","go","go.","in()","indic","int","int(tag","int)","int16(tag","int32(tag","int64(tag","int8(tag","interfac","interface{})","interface{},","it'","kind","kind()","list","listmessag","listmessages(ctx","make([]message,","messag","message.listmessages,","messages\"),","messages\",","messages.","method:","name:","newcustom","newcustom(f","nil","nil,","nirvana","number","object","object,","object.","objv2,","one.","oper","operate(ctx","operator.","operators:","operator,那么","operator:","operator:valid","out","out()","paramet","parameters:","playground/validator,提供了用于生成","reader.","recommended.","reflect.typ","replac","result","results:","results。其中","return","second","signature:","source:","specifi","stream","string","string(tag","string)","string,","struct","struct(inst","struct{}","summary:","tag。","type","type.","uint","uint(tag","uint(value),","uint)","uint16(tag","uint32(tag","uint64(tag","uint8(tag","unless","us","user","valid","validate(object.(*object));","validation,","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","valu","var","way","{","{return","}","}),","},","业务函数","中使用","中添加","中,都有一组","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","会从第一个","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","包提供了工具方法用于将转换函数包装成","包的实现基于","包路径:","包还提供了方法用于创建自定义验证器:","可以不同。","和","和业务函数的参数一一对应,而","和返回值的","在","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在每个","在没有","对于结构体类型,在需要的字段上添加名为","并且会检查最后一个","接口,可用于针对单个参数或返回值进行验证和修改:","提供了","提供了两种类型的","方法获取类型,","是具体要验证的类型,不能使用接口。","是链式调用的,也就是说上一个","有时候默认的验证器不能覆盖复杂的验证需求,因此","注意:oper","的","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的情况下,nirvana","的方法:","的最小值为","的示例:","的返回值会作为下一个","类型。","类型。业务函数的参数也响应的变成了","类型是否和业务函数的参数类型一致。","类型转换为了","自定义验证器","转换函数必须符合","这个例子中,验证器要求","这是一个在","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","验证器函数必须符合签名"],"concepts/filter.html":["*http.request)","/","//","/。","/,如果存在就重定向到没有","/,如果没有就加上","application/x","befor","bool","data,然后","fals","false,","file。","fillleadingslash","filter","filtered.","form","func(resp","github.com/caicloud/nirvana/servic","handl","highest","http.responsewriter,","itself.","lifecycle.","matching.","mean","multipart/form","nirvana","pars","parserequestform","path","prioriti","redirecttrailingslash","req","request","request,","request.","return","router","run","type","url","urlencod","want","www","则表示请求不应该被继续处理,立刻丢弃。","包路径:","和","在整个","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","尾部是不是存在","提供了","提供的一些","机制,可以在收到一个请求的时候,立刻进行处理。并根据","框架中处于最高优先级。filter","的路径上。","的返回值来确定是直接丢弃该请求还是继续处理。","过滤器","返回","这两种类型的请求体,并转换为","这个过滤器判断","这个过滤器只针对","首部有没有"],"concepts/prefab.html":["\"context\",","(interface{},","...","//","=","[]def.parameter{","context","context.context)","contextprefab","contextprefab。请参考","creat","data.","def.definition{","def.prefab,","error)","form","github.com/caicloud/nirvana/servic","http","instanc","instance.","interfac","intern","make","make(ctx","modifi","name","name()","name.","name:","nirvana","paramet","parameters:","prefab","prefab。","prefab,即","prefab,名称为","reflect.typ","registerprefab()","request","return","servic","service.contextprefab。这个","someapi","sourc","source:","source。其他的","string","type","type()","type.","unmarsh","var","{","}","},","中一类特殊的","中实现的唯一一个","从请求中获取数据。","但是一般情况下,我们不应该这样使用","使用方法如下:","包的","包路径:","即可。","只需要将业务函数对应位置的","可以通过","和","将框架传递给它的与请求绑定的","提供的","是","来自于服务端本身。","注册需要的","的数据来源都是来自于请求,而","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","设置为","返回回去。"],"concepts/modifier.html":["*/*。","*definition.definition)","api","consum","consumeallifconsumesisempti","consumenoneforhttpget","consumer,即允许请求体为空。","context","context.context。","context。在这种场景下,如果每个","definit","definition.error。","definitionmodifi","definition。在我们实际开发过程中,经常会要求","delet","firstcontextparamet","func(d","github.com/caicloud/nirvana/servic","http","init","lasterrorresult","modif","modifi","modifiers。","nirvana","pkg/apis/modifi","prefab。启用之后,所有业务函数的第一个参数必须是","produc","produceallifproducesisempti","producenoneforhttpdelet","producer,即允许响应体为空。","type","下查看启用的","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","中,每一个","为所有","为所有的","为空的","会显得非常冗余。因此","公共部分的构建,而每个","创建的项目中,可以在","加上","加上空的","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包路径:","和","在","在使用","如下:","完成","实际上要填写的部分就是只与自身业务相关的信息。modifi","提供了","提供的","机制,允许在","生效之前,对","的","的最后一个返回值加上","的第一个参数添加上名为","类型的","这个","这样就能通过","进行修改。","都有一个对应的","都需要去描述这个参数,那么","默认启用的"],"concepts/middleware.html":["\"/path\",","/","//","/path","/path/path2","/path/path2/oth","1","1.","2","2.","3","3.",">","[]def.middleware{somemiddleware},","actions.","call","carri","chain","chain)","chain.continue()","contain","context.","continu","continue(context.context)","def.descriptor{","describ","descriptor","error","execut","form","func(context.context,","github.com/caicloud/nirvana/definit","interfac","middlewar","middlewares.","middlewares:","next","nirvana","on,","pass","path","path:","subsequ","type","url","want","{","}","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","且成功匹配的情况下,中间件的执行按照","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中间件","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件添加在","中:","包路径:","如果以下路径都添加了中间件:","有关,因此如果多个","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","添加成功后,所有前缀匹配","的请求都会执行这个中间件。","的顺序。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","那么如果存在请求"],"concepts/context.html":["\"application/x","\"content","\"multipart/form","([]string,","(multipart.file,","(reader","(string,","*http.request","//","bodi","body()","body.","bool","bool)","called.","check","code.","contain","content.","contentlength","contentlength()","contenttyp","context","context.","contextprefab","context。http","data","data\".","describ","extend","false,","file","file(key","form","form(key","github.com/caicloud/nirvana/servic","header","header(key","headerwrit","headerwritable()","http","http.responsewrit","http.responsewriter.","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","int","interfac","io.readcloser,","key.","length","method","nirvana","ok","once.","path","path(key","queri","query(key","read","reader","recal","request","request()","request.","responsewrit","responsewriter()","responsewriter。可是使用","return","routepath()","servic","statu","statuscod","statuscode()","string","string)","string,","string.","type","type\"","urlencoded\"","valid","valu","valuecontain","valuecontainer()","whether","writeheader()","writeheader().","written","www","{","}","中包含","中间件不应该修改","中,context","会把对应的","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","包的","包路径:","和","在","在一个请求路由匹配成功后,nirvana","方法获得","框架会为每个请求构建这样的","用于传递请求的上下文。context","的","相关接口如下:"],"concepts/source.html":["(interface{},","//","8","[]consumer,","consum","container.","context.context,","current","data","defaultvalu","definition.sourc","error","error)","func","gener","generate(ctx","generator.","generator。这些","generator:","github.com/caicloud/nirvana/servic","interfac","interface{},","name","nirvana","object","paramet","parameter.","parametergener","parametergenerator)","reflect.type)","regist","registerparametergener","registerparametergenerator(gener","return","servic","sourc","source()","source:path,query,header,form,file,body,auto,prefab。","string,","target","type","us","valid","valid.","validate(nam","valu","valuecontainer,","vc","whether","{","}","不能满足实际的业务需求,可以通过","包提供的方法注册自定义的","包路径:","如果","对应一个","每种","种类型的","负责一种类型的参数的验证和类型转换工作。","默认提供了","默认提供的"],"concepts/destination.html":["(goon","(or","//","1.","2.","3","3.","[]producer,","api","bool,","case","code","code.","context","context.","context.context,","continue):","current","deal","definit","definition.destin","definition.typ","descid","destin","destination()","destinationhandl","destinationhandler)","destination:meta,data,error。","err","error","error)","error.","everyth","execute.","false,","finish","func","github.com/caicloud/nirvana/servic","go","goon,用来确定是否需要执行下一个","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler:","higher","int","int,","interfac","interface{})","look","mean","next","nil","nil.","nirvana","noth","nothing)","ok,","prior","prioriti","priority()","produc","reflect.type)","regist","registerdestinationhandl","registerdestinationhandler(handl","result","return","run.","servic","someth","statu","subsequ","success","take","target","three","true,","type","type.","us","valid","validate(target","valu","value.","whether","wrong,","wrong.","{","}","不能满足实际的业务需求,可以通过","先执行。并且执行之后会返回","包提供的方法注册自定义的","包路径:","如果","存在优先级,优先级高的","对应一个","每种","种类型的","负责一种类型的返回结果的数据转换工作。","默认提供了","默认提供的"],"concepts/error.html":["\"${name}","\"exampl","\"there","\"thi","${id}\")","&message{","(*message,","//","100","101\",\"data\":{\"id\":\"101\"}}","200","404","500","=",">","api","code","code()","code.","common","contain","content\",","content\"}","content:","context.context,","correct\")","correct\",","curl","data","err","error","error()","error)","error.","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。创建","error,但是第一种方法比第二种多出更多特性:","example\",","example\",\"content\":\"exampl","func","getmessag","getmessage(ctx","github.com/caicloud/nirvana/error","golang","handler","http","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/101,即可得到一个","id","id,","id.","id:","id,也就是","implement","inform","int","int)","interfac","interface,","interface{}","intern","messag","message()","messagenotexist","messagenotexist.error(id)","nil","nil,","nirvana","notfound","object","reason","reason。","reason,方便客户端判断错误类型。","return","server","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","specifi","statu","string","title:","type","us","var","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","}","},","中,我们也经常看到使用数字","中,错误需要实现","为了方便使用,nirvana","于是","介绍","使用","使用范例","包","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包路径:","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在实际的业务中,http","在常见的商业","字段中,可以在客户端使用","对于这种错误,都会以","我们建议","接口。即:","接口。如果实现了,就会以","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","提供了","提供了一个新的接口:","方法一","方法二","是否由这个错误工厂生成。","来唯一确定一个错误","来标志的错误。但是数字","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","的","的响应,响应体为:","的形式判断一个","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的方式有两种:","的格式满足:","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的返回值作为","的返回值作为数据返回。","第一种方法带有","第一种方法支持使用","编译运行后可以得到结果:","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","访问","这两种方法都可以创建","这样做有两个优势:","这种形式的","通过","通过具体错误的","里的值进行文本国际化。","错误包","项目名[:模块名]:错误名"],"concepts/method.html":["\"count\",","\"list","\"listmessages\"),","\"method","\"methodname\")","\"number","\"queri","&container{title,","&container{}","(*container)(nil)","([]message,","(ctx","(m","*contain","*container)","*message.contain","//","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0;","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","10,","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","9\",\"content\":\"method","9\"}]",":=","=","[]def.parameter{","[{\"id\":0,\"title\":\"method","api","array\",","contain","content","content\"))","content}","context.context,","count","count)","creat","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","description:","error)","exampl","example\",","func","function:","get()","get(typin","github.com/caicloud/nirvana/definition/method","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","http://localhost:8080/apis/v1/messag","instance)","insterface{})","int)","interface{},","list","listmessag","listmessages(ctx","main.go","make([]message,","messag","messages\"),","messages\",","messages.","method","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","name:","newcontain","newcontainer(title,","nirvana","number","panic。","parameters:","put()","put(in","receiv","results:","return","source:","specifi","string","string)","struct","summary:","titl","type","var","{","}","},","业务方法:","中创建实例并通过","中,业务函数是","为了保证业务与","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","其中","具体实例类型","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","包介绍","包是一个全局实例容器,每种类型对应一个实例。","包路径:","包,用于分离实例的创建和","即可得到返回结果:","和","在","定义。","定义的无关性,nirvana","定义:","实例","实例。","接口实例类型","提供了","方法包","是一样的。","注意,get()","然后编译运行,访问","生成匿名函数:","用于生成一个匿名函数,生成的函数的签名没有方法的","的对应关系。","类型","获取接口实例:","设置接口实例:","请求的","这就是","部分,例如:","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。"],"concepts/configurer.html":["(c","*config","*config)","...","...configurer)","...definition.descriptor)","...service.definitionmodifier)","...service.filter)","//","api","config","config.","configur","configure(configur","configurers.","describ","descriptor(descriptor","error","filter(filt","filter。","func","func(c","github.com/caicloud/nirvana","ip","ip(ip","keyfil","locked.","log.logger)","logger(logg","logger,用于输出错误。","modifier(modifi","modifier。","nirvana","occur","panic","port(port","server","server.","string)","struct","tl","tls(certfile,","type","uint16)","us","{","}","包路径:","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在运行过程中使用的","地址。","实现了","描述。所有的","提供的","机制,用于单独配置每一项信息:","添加","添加到","的","设置","设置监听的","设置监听的端口。","证书和密钥。","都通过这个","配置器机制","里。"],"concepts/plugin.html":["\"pluginname\"","(i","*config)","*nirvana.config)","*plugininstaller)","//","=","`c.config(externalconfigname)`/`c.set(externalconfigname,","befor","builder.","c.set(externalconfigname,","careful,","certain","cfg","cfg)`","config","config.","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","conflict","const","current","delet","disabl","disable()","ensur","error","extern","externalconfignam","fielda.","fieldb.","fieldtype)","framework","func","func(c","get/sav","global","init()","instal","install(build","install/initi","interfac","name","name()","name.","need.","nil","nil)","nirvana","nirvana.","nirvana.configur","nirvana.registerconfiginstaller(&plugininstaller{})","packag","pleas","plugin","plugin.","plugininstal","plugins.","regist","registerconfiginstaller(ci","return","server","server.","servic","service.builder,","set","starting.","string","struct{}","stuff","terminating.","type","uninstal","uninstall(build","uniqu","us","won't","{","{...)","{...}","}","一个基本的插件框架如下:","一般情况下,插件应该通过插件","中添加插件配置。","包提供的方法进行注册:","在","插件实现了这个接口之后,即可通过","插件接口:","插件机制","的","进行注册。然后提供相应的","配置基本信息以外,还提供了插件机制。","除了使用"],"concepts/clients.html":["!=","\"clientset/svca\"","\"clientset/svcb\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","$","$gopath/src/","$gopath/src/clientset","$gopath/src/svca","$gopath/src/svcb","&clientset{}","(","(c","(interface,",")","*clientset)","*rest.config)","../clientset/svca","../clientset/svcb","//","10)",":=","=","a.","b.","c","c,","c.svca","c.svca,","c.svcb","c.svcb,","cd","cli","cli.svca().v1().listmessages(context.background(),","client","client.go","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","contain","creat","describ","err","error","error)","func","host:","import","init","interfac","log.fatal(err)","log.info(msgs)","main()","mkdir","msgs,","multipl","mustnewclientset","mustnewclientset(cfg","new","newclientset","newclientset(cfg","newclientset(cfg)","nil","nil,","nirvana","occurs.","output","packag","panic","panic(err)","rest","return","scheme:","set","set.","struct","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","touch","type","types.go","v1","v2","var","{","}","})","│","└──","├──","两个服务项目。","中创建","为了演示这个过程,我们逐步构建这个项目。","代码如下:","使用","创建","创建项目","即创建了","和","在","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","多客户端整合","整合客户端","此时","没有太大区别:","然后创建两个服务项目(仅用于演示):","生成","生成客户端","的使用方法和普通","的客户端:","的项目结构如下:","统一网关访问","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","项目,用于保存所有服务的客户端:","首先创建","默认情况下,我们会为每个服务生成如下结构的客户端:"],"plugins/logger.html":["//","`desc:\"debug","`desc:\"log","`desc:\"overrid","basic","bool","command","config","configur","contain","debug","enabled\"`","field","flag。","framework","github.com/caicloud/nirvana/plugins/logg","global","int32","level","level.","logger","logger\"`","logger.","logger。","logs\"`","mode.","modifi","nirvana","option","output","overrideglob","plugin","sens","server","struct","true,那么除了设置当前","type","{","}","为","以外,还会设置全局的","包的","包路径:","启用","就无效。如果","暴露","模式后,level","的","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","编写,只是为了通过","这个插件暴露三个选项:"],"plugins/reqlog.html":["/","bool)","configurer:","default()","disable()","doublelog(en","github.com/caicloud/nirvana/plugins/reqlog","id","key,默认为","log.logger)","logger","logger(l","nirvana.configur","request","requestid(en","requestidkey(key","sourceaddr(en","string)","x","上的中间件,用于打印所有路由匹配成功的请求的日志。","关闭插件","包路径:","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件并使用默认配置","插件","的","设置","设置请求","请求日志插件","请求日志插件会添加一个在"],"plugins/metrics.html":["/metric","api","configur","configurer:","disable()","github.com/caicloud/nirvana/plugins/metr","namespac","namespace(n","nirvana.configur","path","path(path","prometheu","prometheus,提供了一个","string)","修改。","关闭插件","包注册指标。采集端可以通过","包路径:","可以通过","启用插件后,可以直接向","插件","用于暴露服务端指标。","监控指标插件","监控指标插件基于","设置","路径","路径,默认值为","采集指标数据。"],"plugins/tracing.html":["/","//","addhook(hook","after(ctx","agenthostport","allow","befor","before(ctx","configurer:","context.context,","custom","customtracer(trac","defaulttracer(servicenam","disable()","exec","github.com/caicloud/nirvana/plugins/trac","hook","hook)","inform","interfac","nirvana.configur","opentrac","opentracing.span)","opentracing.tracer)","process","request","span","span.","string)","string,","trace","tracer","type","{","}","上添加一个中间件用于提取","使用自定义的","使用默认的","信息。","关闭插件","包路径:","接口实现了请求跟踪机制,会在","接口:","插件","设置请求","请求追踪插件","请求追踪插件基于"],"plugins/profiling.html":["/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","api,用于取得服务运行时信息。","configur","configurer:","descriptor:","disable()","github.com/caicloud/nirvana/plugins/profil","net/http/pprof","nirvana.configur","path","path(path","string)","一致的","修改。","关闭插件","前缀路径","包路径:","可以通过","性能分析插件","性能分析插件添加与","插件","设置路径前缀,默认值为","默认情况下,插件会添加四个"],"plugins/version.html":["/version","/version。","api","commit","configurer:","description(descript","disable()","github.com/caicloud/nirvana/plugins/profil","hash","hash(hash","name(nam","nirvana.configur","path(path","string)","version(vers","值","值。一般情况下可以设置为代码的","关闭插件","包路径:","插件","版本信息插件","版本信息插件提供一个","设置","设置服务","设置服务名称","设置服务版本号","设置服务的描述","路径默认为","路径,默认值为","返回服务的版本信息。api"],"plugins/healthcheck.html":["/healthz","/healthz。","api","checker","checker(check","configurer:","context.context)","disable()","error","func(ctx","github.com/caicloud/nirvana/plugins/healthcheck","healthcheck","healthchecker)","nil。如果服务异常,则返回相应的错误。","nirvana.configur","path(path","string)","type","健康检查插件","健康检查插件提供一个","关闭插件","包路径:","如果服务正常,则","应该返回","插件","插件提供了一个函数接口:","用于检查服务是否正常。","设置","路径,默认值为","返回服务当前是否健康。api","默认路径为"],"topics/start.html":["$","$gopath/src","1.10.x","1.9.x","account}/nirvana.git","api","cd","clone","cmd/nirvana","command","config","config.json","convert","definit","definition/method","dep","dep:https://github.com/golang/dep","error","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","fork","git","git@github.com:{your","github","github.com/caicloud/","githuh","go","golang","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","log","mkdir","nirvana","oper","p","plugin","pr","repo","server","servic","service/rout","test","util","validators,用于","vendor","vendor。","一般情况下,我们使用最新版本的","上","与","中。","中包含了两个组件功能实现了","中包含了许多实现了","中,不能在任何子目录下使用","之后,通过","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","以及插件化功能。","其中","准备工作","函数。请参考","到自己的账户下,然后下载源码到本地开发目录中:","功能,并提供了从","包之间的依赖关系:","包包含","包包含多个工具用于","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了框架","包帮助用户快速构建项目。","参数的类型转换和数据验证。","另外","只使用","和","在","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在完成修改并提交到自己的","大版本的兼容性。即使用","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","工作流程","帮助用户把实例方法转换为","开发工具介绍","开发的情况下,需要保持对","提交代码。","插件接口的插件。","方法包。","是","是基础包,分别负责日志基础接口和错误处理基础接口。","框架的","框架的设计核心思想是:隔离","框架设计概览","测试以外,还需要使用","生成,客户端代码生成,项目结构生成。","的主要命令,利用","的入口包。","的兼容性。","的形式向","的配置文件在根目录的","路由和处理的所有功能。","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行开发,但是需要保证两个","除了常规的"],"topics/log.html":["\"error\"","\"fatal\"","\"info\"","\"warn\"","(",")",".","...interface{})","//","1","1.","2","2.","3","3.","4","4.","5.","6.","=","[5,","api","api,并且允许用户接入其他日志系统。","append","argument","call","called.","can't","class","clone","clone(wrapp","const","correspond","current","custom","debug","document","error","error(...interface{})","error.","errorf","errorf(string,","errorln","errorln(...interface{})","exit","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","fmt.print;","fmt.printf;","fmt.println;","follow","four","frequent","glog","golang","handl","immediately.","implement","import","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","information.","int)","int32","interfac","level","level.","leveldebug","leveldebug)","levels.","log","log.","logger","logger.","logger,使用的是","logs,","logs.","mani","manner","math.maxint32","mean","method","missing.","more","neg","new","newlin","nil.","os.exit(1)","os.exit(1).","output","outsid","panic","posit","provid","recommend","recovered.","report","request","return","rules:","see","set","setdefaultlogger()","sever","severityerror","severityfat","severityinfo","severitywarn","silentlogg","site","situation.","stderr","stdlogger。可以通过","string","stripped.","strongli","type","us","usual","v","v(level)","valu","verbos","verboser,","verboser.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","whether","wrapper","wrapper.","write","{","}","之前,需要知道以下几件事情:","包","包提供了一组基础的日志","包有一个默认的","参考了","变更。","和一个使用了","在","在实现一个自定义的","对于不需要输出日志的场景,使用","方法。clone","方法用于在对","时候,使用","标准接口如下:","正确实现","的","的实例而不是","这套日志","进行包装的时候,获取正确层级的调用栈信息。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。"],"topics/errors.html":["\"${user}","(",")","...interface{})","//","11.2","11.3","11.4","11.5","2.3.3","2295,","2774,","3","3.1","3.2","4","4.2","4.4","4918,","5","5842,","6","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8.1","=","api","badgateway","badrequest","bool","build","build(reason","builder","builder,factori","check","code()","conflict","creat","current","deriv","derived(","error","error(format","error(v","error)","error。","error。其中","errros.","expectationfail","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fix","forbidden","format","format.","format,比如","found\")。","gatewaytimeout","gener","gone","http","httpversionnotsupport","immedi","insufficientstorag","int","interfac","interface{}","internalservererror","lengthrequir","lock","loopdetect","message()","methodnotallow","networkauthenticationrequir","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","nirvana","notaccept","notextend","notfound","notimpl","paymentrequir","preconditionfail","preconditionrequir","predefin","proxyauthrequir","reason","reason,","reason.","requestedrangenotsatisfi","requestentitytoolarg","requestheaderfieldstoolarg","requesttimeout","requesturitoolong","rfc","serviceunavail","string","string)","string,","teapot","toomanyrequest","type","unauthor","unavailableforlegalreason","unprocessableent","unsupportedmediatyp","upgraderequir","us","v","v.","var","variantalsonegoti","without","{","}","主要是以","之上,构建了","则用于判断一个错误是否是由当前的","则用于构建特定的","加上一些附加属性,用来表示返回的错误码等信息。","包","包中存在三个概念,分别是","包中):","包提供的","包的依赖,可以自行实现错误包,只要产出的错误符合","包类似于标准库的","包,但是提供了方法用于生成格式化的错误和错误判断。","可以构建带有","和","因此在","就足够了。但是为了让错误能够以","接口即可。","接口如下(这个接口并没有显式定义在","接口如下:","接口,用于创建具有一类特征的","方法用于直接创建出","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","状态码作为基础的:","生成。","用于传入参数输出一个真正的错误。","用于构建","的","的两个方法:","的形式向客户端返回,我们还需要给","的错误)。","目前","识别的错误,但是如果业务逻辑中如果不希望引入对","这个包方便了用户创建能够被","这样就能够非常方便的错误创建和错误判断了。","通常情况下,有","首先看"],"topics/definition.html":["!=","\"\"","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/some\",","\"accept\"","\"accept\".","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"content","\"converter\"}","\"create\"","\"data\"","\"delete\"","\"error\"","\"file\"","\"form\"","\"get\"","\"header\"","\"list\"","\"meta\"","\"multipart/form","\"patch\"","\"path\"","\"prefab\"","\"query\"","\"source\".","\"source,name\".","\"text/plain\"","\"update\"","\"validator\"}","(","(anytype,","(c","(interface{},",")","*converterforanobject)","*validatorforanobject)","//",":=","=","[]definit","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","`source:\"header,cont","`source:\"query,start\"`","accept","accepttypeal","actions.","altern","anytyp","anytype)","api","asynccr","asyncdelet","asyncpatch","asyncupd","auto","back","behavior.","bind","bodi","body.","brief","built","call","carri","cases,","certain","chain","chain)","chain.continue()","child","children","clearer","client","client.","code","code.","combin","concret","const","consum","consume.","consumes.","contain","content","content.","contenttyp","context.","context.context,","continu","continue(context.context)","converter:","converterforanobject","convertobjectv1toobjectv2(object.(*objectv1))","creat","create)。","current","custom","data","data\"","data\".","data.","default","defin","definit","definition.","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definitions.","delet","describ","descript","descriptor","descriptor'","descriptors.","destin","differ","element","empty,","equal","err","error","error)","error.","errorproduc","etc.","ex.","exampl","example.","example:","execut","exist","f","f(context.context,","field","field.","file","first","form","format","from.","func","func(context.context,","function","function.","gener","generator.","go.","handl","handler","handler.","header","header.","http","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","identifi","in()","indic","inherit","instanc","int","interfac","interface{}","interface{})","it'","key,","kind","kind()","last","line","list","locat","make","mani","mean","meta","method","method.","middlewar","middlewares.","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","modifi","more","name","name,","next","nil","nil,","nirvana","object","object,","object.","objv2,","occur","on","on,","one.","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operators:","out","out()","overrid","paramet","parameter.","parameters.","parent","parent'","pass","patch","path","path.","place","prefab","previou","produc","produce.","produces.","provid","queri","reader.","receiv","recommended.","reflect.typ","replac","request","request.","response.","result","result.","results.","retrun","return","return.","second","set","signature:","sourc","specially.","start","statu","stream","stream\"","string","string,","string.","struct","struct{}","sub","subsequ","succeess","success","summari","tag","tag.","target","time,","treat","type","type\"","type\"`","type.","unless","updat","url","urlencoded\"","us","usag","valid","validate(object.(*object));","validator:","validatorforanobject","valu","value.","values.","want","ways.","write","www","{","{return","}","中提供了","中,提供了","其中","其他与","其他与具体","分别对应","则针对单个的业务参数和返回值,可以对值进行验证和修改。","包","包包含了","包除了包含对","参数和返回值定义","可被","同等级别的字段","和","在","在上面的定义中,存在两个额外功能:","如果希望对","定义,用于描述","定义:","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","方法,这个方法是一个抽象方法,用于描述一种行为(比如","的","的参数与返回值。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的定义以外,还提供了一些函数,帮助快速构建","结构体包含了一个具体的","结构体包含具有如下含义的字段:","继承的字段","路径","路径同等级别的字段","进行扩展,需要遵守上面这些规则。"],"topics/method.html":["(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(c","*container)","...","//","=","api","contain","container.","container:","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","definit","definition.funct","definition/method","func","function","get(inst","golang","ifac","instanc","instance)","instance.","interface,","interface{}","interface{})","interface{},","mappings.","method","method)","method.","methods.","more","need","newcontainer()","on","put","put(inst","putinterfac","putinterface(ifac","return","specifi","string)","struct","type","us","var","want","{","}","一般情况下,用户会使用这个全局的容器。","之前使用。","包","包中,可以看到","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包还提供了一个全局的","可以在","和","在","容器如下:","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","时,使用","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","真正的实例,即","获取某个实例的方法,之后再在服务启动逻辑里","过程。也就是可以在声明","这个主要是利用了","这个实例方法容器分离了方法的"],"topics/converter.html":["\"converter\"","(anytype,","//","=","`converter`.","anytyp","anytype)","built","const","convert","converter.","creat","data","definition.oper","definition.operatorfunc(operatorkind,","describ","error)","error.","f(context.context,","f)","for(f","func","func.","gener","go.","interfac","interface{})","kind","kind.","mean","opeartor","oper","operatorkind","operators/convert","operator。","operator:","packag","paramet","recommended.","return","second","signature:","string","string,","struct","type","us","{","}","包","包提供了一个","实现,帮助用户快速构建名为","的","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为"],"topics/validator.html":["\"custom\"","\"struct\"","\"validator\"","\"var\"","(",")","//","=","[]definition.operator{newcustom(f,\"custom","`validator`.","allow","anoth","anytype)","automat","base","basic","bool","bool(tag","bool.","built","byte","byte(tag","call","categori","category()","categorycustom","categorystruct","categoryvar","const","context.context","context.context,","contextu","creat","current","custom","definition.oper","describ","descript","description\")}","description()","differ","distinguish","doc","done","error","exp:","expos","f","f.","fields,","func","func(ctx","gen.","gener","golang","gopkg.in/go","implementation.","indic","information.","int","int(tag","int*,","int16","int16(tag","int32","int32(tag","int64","int64(tag","int8","int8(tag","interfac","interface{})","interface{},","kind","kind.","mean","nest","newcustom","newcustom(f","object","opeartor","oper","operator.","operatorkind","operators/valid","operator:","otherwis","packag","pass","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","return","specifi","string","string(tag","string)","string,","struct","struct(inst","struct.","structs,","tag","tag()","tag.","type","type.","types.","types:","uint","uint(tag","uint*,","uint16","uint16(tag","uint32","uint32(tag","uint64","uint64(tag","uint8","uint8(tag","unless","us","user","valid","validation,","validator.","way","{","}","包","包提供了一系列的方法帮助用户快速生成用于校验参数的","基础类型,结构体类型和自定义类型。目前验证方法基于","目前支持三种类型的验证,分别对应"],"topics/router.html":["(executor,","*","*regexp.regexp",".*:","/","//","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/{regexp:[a",">","[]index","ab","api","call","can't","carri","chain","children","contain","context","context.","continu","continue(context.context)","definit","describ","error","error)","execut","execute(context.context)","execute.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exp","expression.","find","fix","form","full","fullmatch:.*","fullmatchregexpnod","func(context.context,","gener","handler","index","indic","inform","inspect","inspect(context.context)","inspector","inspector:","instanc","int","interfac","it'","key","match","match.","middlewar","middlewares.","name","next","node.","node:","nodes:","on,","optim","pass","path","path.","path:","pathnod","po","posit","prefix","regexp","regexp:[a","regexpnod","regexpnode.","regular","rest","return","router","routingchain","routingchain)","routingchain.continue()","segment.","select","servic","service/rout","someth","string","stringnod","struct","submatches.","target","the/rest/path","type","valid","valu","value.","want","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","}","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","下面用一个例子来说明这几个节点:","中间件接口如下:","之前。","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","剩余路径类型节点","剩余路径类型节点:","包","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包进行","包进行路由构建和匹配。","在上面的路径节点中,每个节点都可以绑定一个","如果能返回一个","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","完全匹配。","定义,然后由","实际上是调用的","对于中间件而言,处理完当前的任务之后只需要调用","将","执行完成之后,请求也处理完成了。","来生成一个能够处理当前的路由上下文的","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","路径匹配完成后,会调用匹配链的最后一个节点的","这个节点匹配剩余所有路径。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","通过"],"topics/service.html":["\"application/x","\"content","\"multipart/form","(","([]string,","(goon","(interface{},","(multipart.file,","(or","(reader","(service,","(string,",")","*definition.definition)","*http.request","*http.request)","...definition.descriptor)","...filter)","//","1.","100","2.","200","3.","300","=","[]consumer,","[]filter","[]producer,","[]string","[]string)","add","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","api","befor","bodi","body()","body.","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","bool","bool)","bool,","build","build()","builder","builder.","builder:","called.","case","check","code","code()","code.","common","const","consum","consume(r","consumer,converter,prefab","contain","container.","content.","contentlength","contentlength()","contenttyp","contenttype()","context","context.","context.context)","context.context,","contexthttpcontext","continue):","convert","creat","current","custom","data","data\".","data.","deal","defaultvalu","definit","definition.","definition.destin","definition.sourc","definition.typ","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definition。请求过滤器则是在","descid","describ","descriptor","destination()","destinationhandl","destinationhandlerdestinationhandl","element","err","error","error)","error.","everyth","execute.","executed.","executor","exists,","extend","false,","file","file(key","filter","filtered.","filters()","filters.","finish","form","form(key","func(ctx","func(d","func(resp","function","gener","generate(ctx","generator.","go","golang","handl","handle(ctx","handle.","handler","handler.","handlers.","header","header(key","headerwrit","headerwritable()","higher","highest","highprior","http","http.handler","http.handler,用来处理请求。","http.responsewrit","http.responsewriter,","http.responsewriter.","httpcontext","ignor","implement","inform","instanc","instance.","int","int,","interfac","interface,","interface{}","interface{})","interface{},","intern","io.readcloser,","io.reader,","io.writer,","it'","it.","itself.","key.","length","lifecycle.","log.logg","log.logger)","logger","logger()","look","lowprior","make","make(ctx","map[string][]definition.definit","map[string][]definition.middlewar","marshal","match","matching.","mean","mediumprior","messag","message()","meta","method","middlewar","middlewares()","middlewares.","mime","modifi","modifier()","modifier.","name","name()","name.","next","nil","nil.","nirvana","noth","nothing)","object","object.","occurs,","ok","ok,","on","once.","panic.","parameter.","parametergener","parametergeneratorparametergener","path","path(key","prefab","prior","prioriti","priority()","produc","produce(w","producerconsum","queri","query(key","query,head","r","read","reader","recal","reflect.typ","reflect.type)","req","request","request()","request,","request.","requests.","respons","responsewrit","responsewriter()","responsewriterresponsewrit","result","return","routepath()","router","router.","run","run.","server.","servic","service.","service.servehttp()","set","setlogg","setlogger(logg","setmodifi","setmodifier(m","someth","sourc","source()","specif","specifi","statu","statuscod","statuscode()","string","string)","string,","string.","subsequ","success","take","target","three","true,","type","type\"","type()","type.","unmarsh","urlencoded\"","us","user","v","v.","valid","valid.","validate(nam","validate(target","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","vc","w.","want","whether","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","{","|","}","↑","↓","中。","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","修改器用于在生成路由之前修改","修改器,请求过滤器,api","其中","则是将业务函数的返回值转换并写入到响应的","包","包实现了","包的入口是","包里提供了一个","和","基础类型的转换器这些转换器一般是用于将请求里的","处理框架:","实现了","实际上是一个","对应","将返回值转换为字节写入响应中。在","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","描述符。构建完成的","提供了多个方法用于设置生成服务需要的日志,definit","是业务函数返回值处理器,通过调用","是对","是真正的参数生成器,通过调用","服务。因此","来提供","构建","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于生成业务函数的参数的","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的基础类型,供业务函数使用。//","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型的","转换为路由需要的数据结构,涉及到以下内容:","返回出去,供业务函数使用。//","还会将","针对请求的"],"topics/nirvana.html":["(builder","(c","*config","*config)","...","...configurer)","//","activ","alway","anoth","api","befor","bool","builder","builder()","builder.","called.","check","clean","cleaner","cleaner.","clients.","complet","config","config(nam","config.","configinstal","configur","configure(configur","configurers.","config:","connections.","contain","context.context)","creat","creation,","current","delet","describ","directli","don't","down","err","error","error)","error,","except","extern","form","func","func()","func(c","get","gracefulli","handl","hold","http","instal","install(build","interfac","interface{}","interface{})","interrupt","ip","ip()","ip.","it.","listen","lock","locked()","locked.","log.logg","logger","logger()","logger.","method","modifi","name","name()","name.","new","newserv","newserver(c","nil","nirvana","occur","occurs.","one.","panic","plugins.","port","port()","port.","request","requests.","resourc","return","router","same","serv","serve()","server","server.","servic","service.builder,","services.","set","set(nam","shut","shutdown","shutdown(ctx","shutdown,","special","start","starting.","string","string)","string,","struct","stuff","terminating.","type","uint16","uninstal","uninstall(build","until","us","via","without","won't","{","}","中可以看到","中,存在一些","也在当前包中。如果需要对配置进行扩展,增强","创建","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","包","包依赖了","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","和","和插件系统。这个包放置在根目录中是因为这个包是","和第三方功能的扩展)。","在","接口如下:","提供的用于生成","方法安装插件。","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","的顶级包,而且其依赖的所有包只来自","级别的配置,这些配置是针对当前服务的。而对应的","自身和标准库(config","需要使用"],"topics/config.html":["'myconfig.name.firstname'.","'nirvana.ip'","(e.g.","(from","(in","(pem","(with","*cobra.command","*int,","*nirvana.config)","*string).","...customoption)","...definition.descriptor)","...plugin)","./","./config/","//","/etc/nirvana/",">","[]string","[]string.","`","`desc:\"desc","`desc:\"nirvana","`desc:\"tl","`desc`","`desc`).","`key`","`pointer`","add","add(point","addopt","addoption(prefix","ag","age\"`","associ","basic","behavior","bool","bool.","case","cert","certif","char","check","collect","comamnd","command","command(cfg","command.","config","config.","configur","configure(cfg","contain","convert","current","custom","customopt","data","default","default,","desc","describ","descript","divid","doc","don't","empti","enabl","enableplugin","enableplugin(plugin","env","env,","error","exampl","example):","example.ag","example.firstnam","example:","example_ag","example_first_nam","execut","execute(descriptor","executewithconfig","executewithconfig(cfg","executing.","field","field,","field.","file)","file,","fill","first","firstnam","flag","flag,","flags,","flags/env/config","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","follow","format)","func","get(key","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","github.com/spf13/cobra","github.com/spf13/vip","given","golang","help","help`,","here","hook","hook()","hook.","https\"`","https.","insensit","instead","int","int.","int16","int32","int32.","int64","int64.","int8","interfac","interface.","interface{}","interface{})","interface{},","ip","ip\"`","is:","isset","isset(key","it'","key","key.","key/valu","listen","listen.","locations.","method","methods.","name","name\"`","name()","name.","namespaces.","nirvana","nirvana.","nirvana.json","nirvana.toml","nirvana.yaml","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","non","obtain","on","option","option,","options.","option,并且实现","order:","overrid","override,","place","plugin","plugins.","pointer","port","port\"`","prefix","prioriti","privat","recommended.","regiser.","retriev","return","run","see","server","server.","set","set(key","set.","sethook","sethook(hook","short","shortflag","singl","specif","store,","store.","string","string)","string,","string.","struct","struct.","tag","time.dur","time.duration.","two","type","uint","uint.","uint16","uint32","uint32.","uint64","uint64.","uint8","up","us","use.","valu","via","viper","want","{","{executablefilepath}/","{executablefilepath}/config/","}","中传递","中的公开字段根据一定的规则(规则参考上面的注释)从","以外,config","包","包中对","包会从以下文件列表中读取配置文件:","包利用","包提供了一个","包的插件能力:","和","和相应的功能。","和配置读取,为","如果读取到配置文件,那么除了使用","实现了","扩展了","接口。用户在","接口如下:","接收配置以外,还可以通过一些帮助方法获取配置:","服务启动提供了命令行支持。","服务配置的特殊性,config","来启用插件,并且将插件","来表达这些配置:","注:如果在","由于","目录:","要求每个插件提供一个","进行了扩展,涉及到字段的改变,也需要在这个包中修改","配置文件名:","除了插件"],"topics/rest.html":["\"http\"","\"https\".","(*client,","(*http.response,","(c","(r","*client)","*config)","*http.request)","*map[string]string)","*request","*request)","...","...interface{})","//","api","bodi","body(contenttyp","builder","check","client","client.","client。而","code","config","config.","context.context)","creat","data","data(valu","definit","describ","do(ctx","do(req","empty,","error","error)","execut","executor","file","file(nam","form","form(nam","func","header","header(nam","host","host:port","http","http.defaultcli","implement","int,","interfac","interface{})","meta","meta(valu","method","newclient","newclient(cfg","nirvana","parameter.","path","path(nam","path.","path,query,header,form,file,bodi","pattern","pointer.","prefab","queri","query(nam","request","request(method","request.","requestexecutor","requests.","request。config","respons","rest","result.","right.","scheme","scheme.","server.","set","specif","statu","string","string)","string,","struct","type","url","us","used.","valu","{","}","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","会被由命令","保存了一个请求的数据,用","则由","创建,用来表示每一个","包","包提供了一个简单的","和","在这个包中,主要包含三个概念:config,cli","方法返回,因此这两种类型没有对应的方法。","是","是由服务端生成而不由客户端提交,error","服务。","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","注:这个","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","用于真正发起请求,并完成","用于访问","由","的填充。","的方法与","的配置,用于创建","的除了","请求。"],"topics/utils.html":["\"\"","\"alias\"","\"descriptors\"","\"modifiers\"","\"origin\"","(","(*api.definitions,","(*definitions,","(*types.package,","(a","(ac","(b","(exported)","(includ","(types.object,","(unexported)",")","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*comment","*contain","*container)","+nirvana:api=option:\"value\"。","...","...definition.descriptor)","...service.definitionmodifier)","...string)","//","0.","=","[]*ast.commentgroup","[]byte","[]exampl","[]funcfield","[]int","[]paramet","[]result","[]string","[]string{commentsoptiondescriptors,","[]structfield","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","abov","add","adddescriptor","adddescriptor(descriptor","addmodifi","addmodifier(modifi","alias.","analyz","analyzeranalyz","ananlyzer.","anonym","api","apibuild","apis.","array,","befor","between","bool","bool)","brief","build","build()","builder","builder.","builder:","bytes.","call","case","cases,","client","code","code.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","complet","conflict","const","consum","consume.","consumes.","contain","container.","containercontain","content","creat","current","data","data.","declar","def.definition.","default","definit","definition.","definition.destin","definition.method","definition.sourc","definitions.","definition此处的","depend","describ","descript","descriptions.","descriptor","descriptor'","descriptors.","descriptor。然后动态生成一个","destin","differ","directori","elem","element","embed","empti","empty,","encod","equal","error","error)","error.","errorproduc","exampl","example.","extract","field","field.","findpackag","findpackages(target","from.","func","funcfield","function","function.","gener","generate()","generators/golang","generators/swagg","generators/util","github.com/go","go","golang","handler","handler.","hold","http","httpcode","httpmethod","identifi","immedi","import","import(path","index","indic","inform","input","instanc","int","invalid","itself).","key","keyword.","kind","kind.","line","list","lower","main.go","mani","map","map,","map.","map[string][]definit","map[string][]str","map[typename]*typ","mean","method","method.","modifi","modifiers.","name","name.","names.","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newcontain","newcontainer(root","nirvana","nirvana.yaml。","object","objectof","objectof(pkg,","offset","on.","openapi","openapi/spec","option","options.","optionsregexp","origin","out","output","overrid","packag","package.","packagecom","packagecomments(path","packages(par","packages.","paramet","parameter.","parameters.","parent","pars","parsecom","parsecomments(com","path","pkgpath","pointer.","pos.","present","printer","produc","produce.","produces.","project","qualifi","reflect.kind","reflect.structtag","regexp.mustcompile(`^[","relat","request.","rest","result","result.","results.","retrun","return","same","sequenc","short","show","slice,","sourc","specifi","stdout","string","string)","string,","struct","struct,","struct.","structfield","succeess","success","summari","swagger","tag","tag.","target","target.","termin","token.pos)","type","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","type为了能让","uintptr","under","uniqu","upper","us","util","valu","value.","values.","var","vendor","version","ways.","whether","within","{","}","中打印表格的功能。","信息的提取。","包","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中,提供了如下功能:","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包则是利用了","包和","包实际上都是利用了","包提供的数据结构生成","包来说就简单很多了,这个包里包含一个","包的","包相对","包读取源码并生成","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于读取项目源码,并生成与","去读取指定路径的源码,然后从中找到标记了","取得返回值,反序列化成","可以读取源码,获取结构对象和注释信息。","后通过","和","在","大部分字段与","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","客户端。","对应","将","执行","接口。swagger","数据。","文件","文档。","文档和客户端。","有关的所有数据结构,产出的结构可用于生成文档和客户端。","来生成","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","用于分析源码的","用于表示代码注释的","的","的定义。","的调用者。这样就完成了对一个项目的","的返回结果,构建出相应的客户端和文档。golang","相关的所有定义和类型信息。api","相关类型:","系列包","系列包包含:","结构,然后再返回给","能转换为可读的数据结构,构建了","读取源码并进行分析,产出","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","选项的注释。两个选项的值对应两个函数,分别返回","除了","集合上述所有功能的","首先会利用"],"topics/command.html":["!=","\"\",","\"boilerplate\",","\"build","\"creat","\"debian:jessie\",","\"docker","\"first","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"imag","\"init","\"nirvana","\"nirvana\",","\"path","\"registries\",","\"runtim","\"v0.1.0\",","\"version\",","&cobra.command{","&initoptions{}","(","(o",")","*cobra.command","*cobra.command)","*cobra.command,","*initoptions)","*pflag.flagset)","//","/path/to/project\",",":=","=","[]string","[]string)","[]string{},","api","api.register(root)","api,用于生成","arg","args);","base","basic","boilerpl","boilerplate\")","build","buildimag","client.register(root)","client,用于生成","cmd","cmd/nirvana","commands.","err","error","flag","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","func","func(cmd","imag","image\",","imageprefix","imagesuffix","import","init","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","instal","install(flag","log.fatalln(err)","long:","main()","main.go","newinitcommand","newinitcommand()","nil","nirvana","option","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","packag","prefix\")","prefix\",","project","project\")","project.register(root)","regist","register(root","registri","registries\")","return","root","root.addcommand(newinitcommand())","root.execute();","run","run(cmd","run:","runtimeimag","short:","string","struct","structure\",","suffix\")","suffix\",","toolchains\",","type","use:","valid","validate(cmd","var","version","{","}","},","一个创建命令的私有函数","一个表示当前命令的所有参数的","中","中,目前包括三个命令:","到命令中","命令","命令为例,说明单个命令的基本结构:","命令对应的包在","基本结构如下:","如果需要新增命令扩展","实现的","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","接下来以","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法用于安装","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","根命令中,比如:","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","然后在","的功能,需要按照上述结构进行开发。","的文件用于把当前的命令加入到","这个包并进行命令注册:"],"topics/routes.html":["\"/api\",","\"hello","\"here","(against","(response,","(string,","(w.r.t","//","[]definition.definition{","[]definition.parameter{},","[]definition.result{","[]string{\"text/plain\"},","add","anyth","api","approach","basic","case","check","context.context)","core","cover","data","declar","defin","definit","definition.data,","definition.descriptor","definition.descriptor{","definition.error,","definition.get,","definitions:","description\",","description:","doc","documentations,","dri","easi","error","error)","etc.","exampl","follow","formats)","framework!","func","func(ctx","function","function:","functions:","gener","goe","handler(request","happen","i.e.","look","lot","method:","more","need","nil","nirvana","nirvana,","openapi","paramet","parameters:","path:","produces:","request)","results:","return","rout","rule,","signatures)","specif","struct","structur","stuff","such","test","this:","todo:","tri","type:","typic","use,","we'll","world!\",","wrong","you'll","you:","{","}","},"],"topics/cli.html":["/","addit","adopt","alway","api","applic","application'","application.","approach","baseline,","boost","build","case,","class","cli","cli,","cobra","command","consist","convent","dedic","default","detail","didn't","differ","do.","entranc","experience.","expos","first","follow","framework","functionalities.","good","instead","interfac","line","make","micro","more","need","nirvana,","option","peopl","philosophi","practic","put","run","scratch","servic","small","specif","still","switch","system","therefor","todo:","unambigu","unix","us","veri","way","well.","you'll"],"topics/validation.html":["\"correspond","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"msg\",","$","''","'gt'","(checkout","./examples/get","/echo","0","0202","1","10","11:18:50.235+08",":)",":8080","[*/*]","[]definition.operator{validator.string(\"gt=10\")},","[]definition.parameter{","[text/plain]","abov","ad","add","advanc","allow","anoth","below","between","builder.go:163","builder.go:178","charact","characters,","code,","concept","consumes:","convert","convertor,","curl","custom","defin","definition.query,","definitions:","description:","descriptor:","differ","easili","echo","echo.go:67","enough","error:field","exampl","facts:","fail","framework","full","go","guid","hood,","info","input","input.","integr","key:","list","listen","longer","messag","method:","middlewares:","more","name:","new","nirvana","non","now","on","oper","operators.","operators:","package,","parameter\",","parameters:","path:","playground/validator.v9","pre","prevent","produces:","repli","request;","run","second","see","sens","server","sever","simpl","smoothli","source:","spam","started/validator/echo.go","such","support","tag","tags.","teach","terminal:","test","testtesttest","tire","two","under","us","usage.","user","valid","validation)","validation,","validation.","validator.","veri","verifi","version","want","works!","works:","{","|","},"],"topics/openapi.html":["!=","\"alice\",","\"apach","\"content","\"echo","\"http://www.apache.org/licenses/licens","\"https://gonirvana.io\",","\"message\":","\"nirvana\",","\"thi","\"v1.0.0\",","&common.config{","&spec.contactinfo{","&spec.info{","&spec.license{","'{\"name\":","+caicloud:openapi=tru","./examples/get","//","/tmp/swagger.json","2.0\",",":=",">","\\","`json:\"message\"","`json:\"name\"","api","api.getopenapidefinitions,","application/json\"","build","builder.buildopenapispec(&echo,","built","code,","come","command,","complic","contact:","creat","curl","d","decid","defin","definitions:","description:","docs,","docs.","document","documentation.","easi","echo","encod","encoder.encode(swagger);","endpoint","enpoint.","err","exampl","example,","file.","finally,","first","follow","from.","full","gen","gener","getdefinitions:","github.com/caicloud/nirvana/examples/get","go","h","http://localhost:8080/echo","https://editor.swagger.io/,","i.e.","info:","infoprops:","it'","json.newencoder(os.stdout)","license,","license:","make","messag","message,","myself\"}'","name","name:","need","new","next","nil","nirvana","now","open","openapi","openapi\",","openapi.","p","packag","package:","panic(err)","post","provid","put","run","see","sent.","server","server\",","servic","spec.infoprops{","specification:","started/openapi/echo.go","started/openapi/pkg/api","step","string","struct","support","swagger,","swagger.json","title:","type","type:","upgrad","url:","user,","validate:\"gt=10\"`","validate:\"required\"`","version","version:","view","we'll","x","you'v","{","}","})","},"],"topics/metrics.html":["\"nirvana_request_latencies\"","#","$","'content","'http://localhost:8080/echo?msg=testtesttest'","(and","(apachebench)",")","./examples/get","/echo","/metric","0","1","100)","1000","1000,","2>&1","48533","53","8080).","89","90m.","98",":=","[0,","ab","actual","ad","add","alway","anoth","api","application/json'","around","author.","between","box","broken","checkout","client,","client.","code,","code.","complex","concept","config","config.","configur","configuration,","configuration:","configure(","contenttyp","counter","curl","default","depend","diagnos","disabled.","distribut","done","done,","each","enabl","endpoint.","exampl","example,","expos","format.","full","function","go","grep","guid","h","help","histogram","http","http://localhost:8080/metr","implement","individu","inform","instal","instrumentation.","it'","latenc","latencies.","let'","load;","mani","metric","metrics,","metrics.","metrics.path(\"/metrics\"),","microsecond","middlewares.","more","n","nirvana","nirvana.newdefaultconfig(\"\",","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","now","on","onc","others).","out","p90","plugin","plugin,","plugin.","prometheu","random","regist","request","resourc","resource,","resource.","respons","run","run:","see","seen","server","server,","servic","service!","service;","show","simpli","simul","sleep","start","started/metrics/echo.go","starts.","static","summari","support","tell","terminal,","therefore,","time","total.","type","type:","understand","us","user","verb","verb,","via","we'll","we'v","wealth","|"]},"length":45},"tokenStore":{"root":{"0":{"2":{"0":{"2":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}},"7":{"0":{"2":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292}}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.017361111111111112}},";":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"1":{"0":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.004433934377771209},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.04513888888888889}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"0":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"1":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}},":":{"1":{"8":{"docs":{},":":{"5":{"0":{"docs":{},".":{"2":{"3":{"5":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"6":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},".":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"5":{"docs":{},":":{"4":{"7":{"docs":{},":":{"5":{"2":{"docs":{},".":{"0":{"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"4":{"9":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"0":{"docs":{},":":{"5":{"4":{"docs":{},".":{"1":{"5":{"6":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"5":{"docs":{},".":{"6":{"0":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"6":{"docs":{},":":{"3":{"4":{"docs":{},":":{"3":{"8":{"docs":{},".":{"6":{"6":{"3":{"docs":{},"+":{"0":{"8":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.005911912503694945},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.034722222222222224}},".":{"1":{"0":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"1":{"docs":{},")":{"docs":{},"中":{"docs":{},",":{"docs":{},"若":{"docs":{},"项":{"docs":{},"目":{"docs":{},"处":{"docs":{},"于":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"docs":{}},"9":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"把":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"2":{"0":{"0":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},"1":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0002955956251847473}}},"2":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"./":{"ref":"./","tf":0.0011823825007389892}}},"4":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"2":{"9":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"6":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"7":{"7":{"4":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"8":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"3":{"docs":{},".":{"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"3":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},">":{"docs":{},"&":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}}}},"3":{"0":{"0":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0014779781259237363}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"4":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"4":{"0":{"4":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"1":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"5":{"3":{"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"docs":{}},"docs":{}},"docs":{}},"9":{"1":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"5":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"5":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"5":{"5":{"4":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"docs":{}},"docs":{}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"3":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"8":{"4":{"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"6":{"5":{"8":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"7":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"5":{"docs":{},".":{"1":{"0":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"7":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"8":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"9":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"6":{"docs":{},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"7":{"1":{"6":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"2":{"3":{"1":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.04849884526558892}}}},"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}},"docs":{}},"docs":{}},"3":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"2":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"8":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"8":{"0":{"8":{"0":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},")":{"docs":{},".":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"9":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"9":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"8":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"9":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"docs":{}},"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"]":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.014484185634052616},"guides/project.html":{"ref":"guides/project.html","tf":0.0330188679245283},"guides/api.html":{"ref":"guides/api.html","tf":10.038535645472061},"guides/doc.html":{"ref":"guides/doc.html","tf":3.442708333333333},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/version.html":{"ref":"plugins/version.html","tf":0.05},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555},"topics/start.html":{"ref":"topics/start.html","tf":0.046875},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.033444816053511704},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.027472527472527},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},":":{"1":{"7":{"9":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"8":{"7":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"9":{"5":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"服":{"docs":{},"务":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"接":{"docs":{},"入":{"docs":{},"其":{"docs":{},"他":{"docs":{},"日":{"docs":{},"志":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"m":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"'":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},"'":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"e":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.026234567901234566}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"b":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"o":{"docs":{},"v":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"o":{"1":{"1":{"1":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.014150943396226415},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}},"d":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"v":{"docs":{},"i":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"@":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{},"{":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},",":{"docs":{},"两":{"docs":{},"者":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":5.08235294117647},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004138338752586462},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}},":":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.009163464380727165},"guides/project.html":{"ref":"guides/project.html","tf":0.0330188679245283},"guides/api.html":{"ref":"guides/api.html","tf":0.025048169556840076},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.0380952380952381},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0392156862745098},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.03271028037383177},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0859375},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":10.02572347266881},"topics/config.html":{"ref":"topics/config.html","tf":0.021604938271604937},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.023255813953488372},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.16666666666666666},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.06896551724137931},"plugins/version.html":{"ref":"plugins/version.html","tf":0.15},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.08333333333333333},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"{":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"2":{"docs":{},".":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"2":{"0":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"1":{"0":{"2":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"2":{"5":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"3":{"1":{"0":{"7":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"8":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"2":{"0":{"4":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"5":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"6":{"2":{"1":{"4":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"3":{"2":{"7":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"4":{"0":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"5":{"0":{"0":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"2":{"4":{"2":{"8":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"5":{"5":{"3":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"8":{"1":{"9":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}}},"docs":{}},"docs":{},"e":{"docs":{},"+":{"0":{"6":{"docs":{},"\"":{"docs":{},"}":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}},"docs":{}}}},"docs":{},"+":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"0":{"docs":{},".":{"5":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"9":{"9":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"服":{"docs":{},"务":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"./":{"ref":"./","tf":0.00325155187703222},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"y":{"docs":{},"@":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702}}},"s":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"w":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"e":{"docs":{},"w":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"4":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"2":{"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"3":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"5":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"与":{"docs":{},"其":{"docs":{},"他":{"docs":{},"普":{"docs":{},"通":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"此":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"和":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"都":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"侵":{"docs":{},"入":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"作":{"docs":{},"出":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"应":{"docs":{},"当":{"docs":{},"以":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"对":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"包":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"增":{"docs":{},"强":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"设":{"docs":{},"计":{"docs":{},"上":{"docs":{},"与":{"docs":{},"现":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"心":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"过":{"docs":{},"程":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"层":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"层":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"含":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"发":{"docs":{},"布":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"修":{"docs":{},"改":{"docs":{},"并":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"场":{"docs":{},"景":{"docs":{},"中":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"除":{"docs":{},"了":{"docs":{},"正":{"docs":{},"常":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"各":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"到":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},",":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"没":{"docs":{},"有":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"整":{"docs":{},"个":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"源":{"docs":{},"头":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"公":{"docs":{},"共":{"docs":{},"的":{"docs":{},"网":{"docs":{},"关":{"docs":{},"进":{"docs":{},"行":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"对":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"整":{"docs":{},"合":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"涵":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"过":{"docs":{},"程":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"导":{"docs":{},"致":{"docs":{},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"引":{"docs":{},"用":{"docs":{},"各":{"docs":{},"种":{"docs":{},"各":{"docs":{},"样":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"综":{"docs":{},"合":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{},"该":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"每":{"docs":{},"个":{"docs":{},"包":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"主":{"docs":{},"要":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"额":{"docs":{},"外":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"这":{"docs":{},"些":{"docs":{},"组":{"docs":{},"件":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"计":{"docs":{},"理":{"docs":{},"念":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"会":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"通":{"docs":{},"常":{"docs":{},"足":{"docs":{},"够":{"docs":{},"使":{"docs":{},"用":{"docs":{},"者":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"间":{"docs":{},"也":{"docs":{},"会":{"docs":{},"存":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"速":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"件":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"中":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"是":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"一":{"docs":{},"个":{"docs":{},"着":{"docs":{},"重":{"docs":{},"于":{"docs":{},"提":{"docs":{},"高":{"docs":{},"开":{"docs":{},"发":{"docs":{},"效":{"docs":{},"率":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}},"短":{"docs":{},"语":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"指":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"验":{"docs":{},"证":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"否":{"docs":{},"由":{"docs":{},"这":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"包":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"负":{"docs":{},"责":{"docs":{},"日":{"docs":{},"志":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"处":{"docs":{},"理":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}},"由":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"而":{"docs":{},"不":{"docs":{},"由":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"让":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{},"框":{"docs":{},"架":{"docs":{},"隔":{"docs":{},"离":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"处":{"docs":{},"于":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"设":{"docs":{},"计":{"docs":{},"核":{"docs":{},"心":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},":":{"docs":{},"隔":{"docs":{},"离":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"概":{"docs":{},"览":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"概":{"docs":{},"览":{"docs":{"./":{"ref":"./","tf":10}}},"念":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"各":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"也":{"docs":{},"是":{"docs":{},"依":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"和":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"该":{"docs":{},"请":{"docs":{},"求":{"docs":{},"还":{"docs":{},"是":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"数":{"docs":{},"据":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"包":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"忽":{"docs":{},"略":{"docs":{},"所":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"通":{"docs":{},"常":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"为":{"docs":{},"了":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"来":{"docs":{},"共":{"docs":{},"同":{"docs":{},"标":{"docs":{},"识":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"框":{"docs":{},"架":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{},"。":{"docs":{},"下":{"docs":{},"表":{"docs":{},"中":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"用":{"docs":{},"途":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"这":{"docs":{},"个":{"docs":{},"短":{"docs":{},"语":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}},"户":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"会":{"docs":{},"递":{"docs":{},"归":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"以":{"docs":{},"寻":{"docs":{},"找":{"docs":{},"带":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},",":{"docs":{},"与":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"字":{"docs":{},"段":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"调":{"docs":{},"换":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"工":{"docs":{},"具":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"注":{"docs":{},"册":{"docs":{},"方":{"docs":{},"法":{"docs":{},"即":{"docs":{},"可":{"docs":{},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"与":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"式":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"最":{"docs":{},"小":{"docs":{},"值":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"路":{"docs":{},"径":{"docs":{},"上":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"数":{"docs":{},"据":{"docs":{},"来":{"docs":{},"源":{"docs":{},"都":{"docs":{},"是":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"添":{"docs":{},"加":{"docs":{},"上":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"都":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"满":{"docs":{},"足":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"表":{"docs":{},"达":{"docs":{},"性":{"docs":{},"很":{"docs":{},"差":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"全":{"docs":{},"局":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"性":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"作":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"错":{"docs":{},"误":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"动":{"docs":{},"态":{"docs":{},"函":{"docs":{},"数":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"真":{"docs":{},"正":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"里":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"方":{"docs":{},"便":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"顶":{"docs":{},"级":{"docs":{},"包":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"其":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"包":{"docs":{},"只":{"docs":{},"来":{"docs":{},"自":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}},"填":{"docs":{},"充":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"除":{"docs":{},"了":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"述":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"把":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"docs":{}}},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0005911912503694946}}}},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"docs":{}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"n":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"\"":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"s":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"r":{"docs":{},"e":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"m":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"h":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"i":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"#":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.11320754716981132},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.020833333333333332}}},"$":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.030660377358490566},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/start.html":{"ref":"topics/start.html","tf":0.03125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"g":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"/":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"{":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},".":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"1":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"docs":{}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.0380952380952381},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"*":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"/":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"/":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},":":{"docs":{},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"docs":{}}}}}}},"/":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.05009633911368015},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.09056603773584905},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.05952380952380952},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.047619047619047616},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.04938271604938271},"concepts/context.html":{"ref":"concepts/context.html","tf":0.09289617486338798},"concepts/source.html":{"ref":"concepts/source.html","tf":0.058823529411764705},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.09326424870466321},"concepts/error.html":{"ref":"concepts/error.html","tf":0.03139013452914798},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.0794392523364486},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.024464831804281346},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.04838709677419355},"topics/log.html":{"ref":"topics/log.html","tf":0.11611374407582939},"topics/errors.html":{"ref":"topics/errors.html","tf":0.10392609699769054},"topics/definition.html":{"ref":"topics/definition.html","tf":0.12545126353790614},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.10457516339869281},"topics/router.html":{"ref":"topics/router.html","tf":0.07508532423208192},"topics/service.html":{"ref":"topics/service.html","tf":0.08742514970059881},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.08681672025723473},"topics/config.html":{"ref":"topics/config.html","tf":0.10802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.07272727272727272},"topics/utils.html":{"ref":"topics/utils.html","tf":0.09810479375696766},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.02601241501625776},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"z":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"重":{"docs":{},"定":{"docs":{},"向":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"就":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"2":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"/":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}},"docs":{}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.10344827586206896},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}}}}}}},"v":{"2":{"docs":{},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"[":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}},"=":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422},"topics/definition.html":{"ref":"topics/definition.html","tf":0.026173285198555957},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0026603606266627253}},"=":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.018475750577367205},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"(":{"docs":{},"&":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},":":{"1":{"6":{"3":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"7":{"8":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"s":{"docs":{},"n":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}}},"y":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"l":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.03278688524590164},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"s":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"i":{"docs":{},"e":{"docs":{},"f":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}},"d":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/start.html":{"ref":"topics/start.html","tf":0.015625}}},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/command.html":{"ref":"topics/command.html","tf":10.004201680672269}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.0023647650014779783}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05963302752293578},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},")":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":10.010928961748634},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}}},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"u":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"2":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},")":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"n":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.384009009009009},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.049019607843137254},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.06542056074766354},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":10.01388888888889},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0035471475022169673},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.002069169376293231},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"a":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.14705882352941177},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01929260450160772},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.004138338752586462},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"b":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},":":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}},"d":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0026603606266627253}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"s":{"docs":{},".":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"i":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},"}":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}}},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"注":{"docs":{},"释":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"要":{"docs":{},"对":{"docs":{},"注":{"docs":{},"释":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"注":{"docs":{},"释":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"x":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"a":{"docs":{},"m":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.042483660130718956},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}}}}}}}}}}}}},"v":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":10.04054054054054}},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.027707808564231738},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168}},":":{"1":{"0":{"6":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}},"7":{"3":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"8":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"g":{"docs":{},"o":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"而":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},",":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"s":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.02287581699346405},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.037037037037037035},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0011823825007389892}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"./":{"ref":"./","tf":0.0005911912503694946}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"f":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"g":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},")":{"docs":{},"`":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.015414258188824663},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.12380952380952381},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/definition.html":{"ref":"topics/definition.html","tf":10.016245487364621},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.025}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"2":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"docs":{}},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"{":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"开":{"docs":{},"发":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"会":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"则":{"docs":{},"是":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/method.html":{"ref":"topics/method.html","tf":10}}}}}}}}},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.00325155187703222},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"=":{"docs":{},"{":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"(":{"docs":{},")":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"./":{"ref":"./","tf":0.00650310375406444},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0073898906296186815}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"然":{"docs":{},"后":{"docs":{},"动":{"docs":{},"态":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}},":":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"./":{"ref":"./","tf":0.0029559562518474726}}}}},"i":{"docs":{},"d":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.010362694300518},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"a":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"o":{"docs":{},"c":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}},"s":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"n":{"docs":{},"e":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"'":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0029559562518474726},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"docs":{}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.02702702702702703},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"a":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"b":{"docs":{},"e":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0011823825007389892},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05045871559633028},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.004729530002955957},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0035471475022169673},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},"u":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},",":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"则":{"docs":{},"认":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"。":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}}}},"r":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02702702702702703},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.0038427431274017146},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}},"o":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.07623318385650224},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":10.057736720554272},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.007685486254803429},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.013207547169811321},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894},"./":{"ref":"./","tf":0.0017735737511084836},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"s":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"比":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"多":{"docs":{},"出":{"docs":{},"更":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"t":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"s":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.005025125628140704},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{},":":{"6":{"5":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"7":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"v":{"2":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{}}}}}},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":10.119047619047619},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0005911912503694946}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/utils.html":{"ref":"topics/utils.html","tf":0.020066889632107024},"./":{"ref":"./","tf":0.0011823825007389892}},"a":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"b":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.0002955956251847473}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"x":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0017735737511084836},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}}}}}},"o":{"docs":{},"m":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"k":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.04054054054054054},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"u":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.020151133501259445},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.052830188679245285},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.037383177570093455},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0375},"topics/validator.html":{"ref":"topics/validator.html","tf":0.049019607843137254},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.02572347266881029},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.04},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0053207212533254505},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"d":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"l":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},":":{"docs":{},".":{"docs":{},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"*":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.02771362586605081},"./":{"ref":"./","tf":0.0002955956251847473}}},"y":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"./":{"ref":"./","tf":0.0005911912503694946}}},"。":{"docs":{},"也":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"类":{"docs":{},"表":{"docs":{},"示":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}},"s":{"docs":{},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"通":{"docs":{},"过":{"docs":{},"外":{"docs":{},"部":{"docs":{},"选":{"docs":{},"项":{"docs":{},"来":{"docs":{},"改":{"docs":{},"变":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"(":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{},"*":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},"f":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}},"l":{"docs":{},"n":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}}}}}}}}}}}}},")":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"(":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.009433962264150943},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.02185792349726776},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01818181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"得":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"1":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"u":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"2":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"2":{"0":{"4":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"(":{"2":{"0":{"0":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"请":{"docs":{},"求":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}},"。":{"docs":{},"如":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"您":{"docs":{},"明":{"docs":{},"确":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}},"t":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"l":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},"`":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0017735737511084836}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.025906735751295335},"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.0880829015544045},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0035471475022169673}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}}},"s":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"这":{"docs":{},"些":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"同":{"docs":{},"等":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"闭":{"docs":{},"包":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"必":{"docs":{},"要":{"docs":{},"文":{"docs":{},"件":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{}},"3":{"2":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.01437125748502994},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"g":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"t":{"docs":{"./":{"ref":"./","tf":10}}}}}}}}},"f":{"docs":{},"o":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0026603606266627253},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"r":{"docs":{},"m":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"|":{"docs":{},"l":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0023647650014779783}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"i":{"docs":{},"p":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"./":{"ref":"./","tf":0.0002955956251847473}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"o":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"!":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"s":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"k":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"g":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":10.045023696682465},"./":{"ref":"./","tf":0.0014779781259237363}},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.023696682464454975}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"(":{"4":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"docs":{}}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.018957345971563982},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0005911912503694946}},"(":{"docs":{},"l":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"输":{"docs":{},"出":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"k":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"w":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"a":{"docs":{},"d":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"k":{"docs":{},"e":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"e":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"会":{"docs":{},"写":{"docs":{},"入":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"]":{"docs":{},"*":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"h":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"3":{"2":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"docs":{}},"docs":{}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/error.html":{"ref":"concepts/error.html","tf":0.017937219730941704},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.004729530002955957},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0008867868755542418}},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01607717041800643},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.00325155187703222},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0005911912503694946}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0053207212533254505},"topics/metrics.html":{"ref":"topics/metrics.html","tf":10.03125}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0008867868755542418}}}},"d":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":10.024691358024691},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0038427431274017146}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"./":{"ref":"./","tf":0.0005911912503694946}},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"x":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"o":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"i":{"docs":{},"f":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":10.095238095238095},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.002069169376293231}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"u":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}}}},"e":{"docs":{},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"r":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"./":{"ref":"./","tf":0.0035471475022169673},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}},":":{"docs":{},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}}},"docs":{}}},"docs":{}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"l":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"g":{"1":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}},"2":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"s":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"k":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"p":{"9":{"0":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"docs":{}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.002069169376293231},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":5.011764705882353},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.0073898906296186815},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0023647650014779783},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.002069169376293231}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"s":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0017735737511084836}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0008867868755542418}}}},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0038427431274017146}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"./":{"ref":"./","tf":0.005025125628140704},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0026603606266627253}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"s":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"./":{"ref":"./","tf":0.0014779781259237363}}}},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"k":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.03125},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}}}}}}}},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0008867868755542418}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"a":{"docs":{},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":10.095238095238095},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}},"启":{"docs":{},"用":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"名":{"docs":{},"称":{"docs":{},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.377252252252252},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0029559562518474726}},"e":{"docs":{},"(":{"docs":{},"w":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"他":{"docs":{},"们":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"和":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0038427431274017146},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"s":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0023647650014779783},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"x":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0014779781259237363}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"o":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"?":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}},"u":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/method.html":{"ref":"topics/method.html","tf":0.05660377358490566},"./":{"ref":"./","tf":0.0008867868755542418},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0011823825007389892}}}}},"a":{"docs":{},"y":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}},".":{"docs":{},"v":{"9":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"./":{"ref":"./","tf":0.007685486254803429},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.024305555555555556}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0014779781259237363},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0005911912503694946}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}}}}}},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}},"e":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"判":{"docs":{},"断":{"docs":{},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},".":{"docs":{},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"`":{"docs":{},"^":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"o":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"r":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"q":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.03571428571428571},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.025454545454545455},"./":{"ref":"./","tf":0.006207508128879693},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.013888888888888888}},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},".":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{},"可":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/rest.html":{"ref":"topics/rest.html","tf":10.018181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"./":{"ref":"./","tf":0.004433934377771209}},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0005911912503694946}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.020754716981132074},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.04918032786885246},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.027544910179640718},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.032407407407407406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.007094295004433935},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"l":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0011823825007389892}}}}}},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0023647650014779783},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":10.041666666666666}},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"=":{"docs":{},"\"":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},"\"":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":10.009580838323354},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0014779781259237363},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":10}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"./":{"ref":"./","tf":0.0017735737511084836}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"n":{"docs":{},"s":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.00325155187703222},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.016587677725118485},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0026603606266627253}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"。":{"docs":{},"值":{"docs":{},"使":{"docs":{},"用":{"docs":{},"逗":{"docs":{},"号":{"docs":{},"分":{"docs":{},"隔":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"参":{"docs":{},"数":{"docs":{},"来":{"docs":{},"源":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"表":{"docs":{},"示":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"(":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"[":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"s":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},".":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"e":{"docs":{},"d":{"docs":{},"/":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"t":{"docs":{},"u":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0023647650014779783}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.016339869281045753},"topics/router.html":{"ref":"topics/router.html","tf":0.034129692832764506},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446},"./":{"ref":"./","tf":0.004729530002955957},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.026415094339622643},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.125},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0002955956251847473}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},"/":{"docs":{},"[":{"docs":{},"]":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.014492753623188406},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"{":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"a":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},".":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"a":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"y":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"b":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"s":{"docs":{},")":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0014779781259237363}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"v":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673}},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"h":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},"w":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0023647650014779783},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}},",":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"m":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"n":{"docs":{},"i":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"u":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"./":{"ref":"./","tf":0.0005911912503694946}},"s":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.008572273130357671},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"./":{"ref":"./","tf":0.0002955956251847473}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0002955956251847473}}},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"./":{"ref":"./","tf":0.0002955956251847473}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"r":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"./":{"ref":"./","tf":0.0008867868755542418}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}}},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"i":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"./":{"ref":"./","tf":0.0005911912503694946}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"x":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"b":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"docs":{}},"3":{"2":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":10.002229654403568}}}}}},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.01650943396226415},"guides/client.html":{"ref":"guides/client.html","tf":0.022670025188916875},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"2":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"o":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"./":{"ref":"./","tf":0.0002955956251847473}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"a":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.00325155187703222}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.04150943396226415},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.1503267973856209},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.008276677505172924},"topics/validation.html":{"ref":"topics/validation.html","tf":10.040697674418604}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}},"docs":{}},"docs":{}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},".":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},")":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"u":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/config.html":{"ref":"topics/config.html","tf":0.035493827160493825},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.005616316878510198}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"是":{"docs":{},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"a":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0017735737511084836},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"│":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.10141509433962265},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.03537735849056604},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.04009433962264151},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}}}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"是":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"样":{"docs":{},"板":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"如":{"docs":{},"何":{"docs":{},"放":{"docs":{},"到":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"表":{"docs":{},"现":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"每":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"直":{"docs":{},"接":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"位":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"与":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}},"添":{"docs":{},"加":{"docs":{},"在":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}},"携":{"docs":{},"带":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"也":{"docs":{},"经":{"docs":{},"常":{"docs":{},"看":{"docs":{},"到":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"组":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"是":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"任":{"docs":{},"何":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"目":{"docs":{},"前":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"添":{"docs":{},"加":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"为":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"径":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"时":{"docs":{},"不":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},"包":{"docs":{},"含":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"实":{"docs":{},"例":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"传":{"docs":{},"递":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"的":{"docs":{},"公":{"docs":{},"开":{"docs":{},"字":{"docs":{},"段":{"docs":{},"根":{"docs":{},"据":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"规":{"docs":{},"则":{"docs":{},"参":{"docs":{},"考":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},")":{"docs":{},"从":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"印":{"docs":{},"表":{"docs":{},"格":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"为":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"所":{"docs":{},"有":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.047619047619047616}},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"演":{"docs":{},"示":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"构":{"docs":{},"建":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"端":{"docs":{},"口":{"docs":{},"是":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"设":{"docs":{},"置":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"读":{"docs":{},"取":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"从":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"显":{"docs":{},"得":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"上":{"docs":{},"所":{"docs":{},"有":{"docs":{},"节":{"docs":{},"点":{"docs":{},"按":{"docs":{},"照":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"串":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"并":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"上":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"由":{"docs":{},"命":{"docs":{},"令":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"范":{"docs":{},"例":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"比":{"docs":{},"较":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}},"修":{"docs":{},"改":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"前":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},",":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"时":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"非":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{},"里":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"安":{"docs":{},"装":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},"自":{"docs":{},"带":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"账":{"docs":{},"户":{"docs":{},"下":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"下":{"docs":{},"载":{"docs":{},"源":{"docs":{},"码":{"docs":{},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"开":{"docs":{},"发":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"从":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"增":{"docs":{},"加":{"docs":{},"相":{"docs":{},"应":{"docs":{},"字":{"docs":{},"段":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"应":{"docs":{},"该":{"docs":{},"使":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"值":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"当":{"docs":{},"前":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"定":{"docs":{},"义":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"考":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"会":{"docs":{},"打":{"docs":{},"印":{"docs":{},"出":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"用":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"或":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"双":{"docs":{},"重":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"即":{"docs":{},"请":{"docs":{},"求":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"结":{"docs":{},"束":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"示":{"docs":{},"源":{"docs":{},"地":{"docs":{},"址":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"向":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"启":{"docs":{},"动":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"编":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"单":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"包":{"docs":{},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.05405405405405406},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"一":{"docs":{},"个":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"插":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"是":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"配":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},",":{"docs":{},"为":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"如":{"docs":{},"果":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"命":{"docs":{},"令":{"docs":{},"扩":{"docs":{},"展":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"类":{"docs":{},"型":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}}},"以":{"docs":{},"下":{"docs":{},"路":{"docs":{},"径":{"docs":{},"都":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"正":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"希":{"docs":{},"望":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"读":{"docs":{},"取":{"docs":{},"到":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"下":{"docs":{},":":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"字":{"docs":{},"段":{"docs":{},"无":{"docs":{},"效":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"进":{"docs":{},"行":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"在":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"必":{"docs":{},"须":{"docs":{},"与":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"存":{"docs":{},"放":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.014150943396226415}},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"启":{"docs":{},"动":{"docs":{},"命":{"docs":{},"令":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"在":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"再":{"docs":{},"对":{"docs":{},"应":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"更":{"docs":{},"加":{"docs":{},"明":{"docs":{},"确":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"根":{"docs":{},"据":{"docs":{},"场":{"docs":{},"景":{"docs":{},"确":{"docs":{},"定":{"docs":{},"使":{"docs":{},"用":{"docs":{},"哪":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"的":{"docs":{},"可":{"docs":{},"读":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"无":{"docs":{},"关":{"docs":{},"性":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"不":{"docs":{},"能":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"任":{"docs":{},"何":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"上":{"docs":{},"添":{"docs":{},"加":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"之":{"docs":{},"后":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"在":{"docs":{},"容":{"docs":{},"器":{"docs":{},"内":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"打":{"docs":{},"包":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"看":{"docs":{},"到":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"无":{"docs":{},"效":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"错":{"docs":{},"误":{"docs":{},"能":{"docs":{},"够":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"或":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"域":{"docs":{},"名":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"与":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},"打":{"docs":{},"包":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"符":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"构":{"docs":{},"建":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"服":{"docs":{},"务":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"只":{"docs":{},"能":{"docs":{},"填":{"docs":{},"写":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"打":{"docs":{},"开":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"因":{"docs":{},"此":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"启":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"性":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"路":{"docs":{},"径":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"则":{"docs":{},"根":{"docs":{},"据":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"一":{"docs":{},"段":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"限":{"docs":{},"制":{"docs":{},":":{"docs":{},"只":{"docs":{},"能":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"确":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"此":{"docs":{},"时":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"每":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"服":{"docs":{},"务":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"份":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{},"在":{"docs":{},"一":{"docs":{},"起":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"内":{"docs":{},"容":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"互":{"docs":{},"相":{"docs":{},"之":{"docs":{},"间":{"docs":{},"不":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}},"比":{"docs":{},"如":{"docs":{},"设":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"命":{"docs":{},"令":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"演":{"docs":{},"示":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":10.025}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"规":{"docs":{},"则":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"识":{"docs":{},"别":{"docs":{},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"签":{"docs":{},"名":{"docs":{},"没":{"docs":{},"有":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"暴":{"docs":{},"露":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"服":{"docs":{},"务":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"常":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"合":{"docs":{},"并":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"真":{"docs":{},"正":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"分":{"docs":{},"析":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"表":{"docs":{},"示":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},",":{"docs":{},"则":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"运":{"docs":{},"行":{"docs":{},"一":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"开":{"docs":{},"启":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"中":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"前":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"还":{"docs":{},"不":{"docs":{},"完":{"docs":{},"善":{"docs":{},",":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"对":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"编":{"docs":{},"译":{"docs":{},"并":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"写":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"范":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}},"语":{"docs":{},"言":{"docs":{},"版":{"docs":{},"本":{"docs":{},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"到":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"。":{"docs":{},"为":{"docs":{},"空":{"docs":{},"时":{"docs":{},"不":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"替":{"docs":{},"换":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"版":{"docs":{},"本":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"程":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"声":{"docs":{},"明":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"本":{"docs":{},"地":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"包":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"之":{"docs":{},"后":{"docs":{},"则":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},",":{"docs":{},"并":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.05714285714285714}},"字":{"docs":{},"段":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"替":{"docs":{},"换":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"空":{"docs":{},"格":{"docs":{},"后":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"这":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"是":{"docs":{},"有":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"工":{"docs":{},"具":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"判":{"docs":{},"断":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808}}}},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}},"插":{"docs":{},"件":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"三":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},":":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"包":{"docs":{},"方":{"docs":{},"便":{"docs":{},"了":{"docs":{},"用":{"docs":{},"户":{"docs":{},"创":{"docs":{},"建":{"docs":{},"能":{"docs":{},"够":{"docs":{},"被":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"分":{"docs":{},"离":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"对":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"用":{"docs":{},"特":{"docs":{},"例":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"快":{"docs":{},"速":{"docs":{},"进":{"docs":{},"行":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"添":{"docs":{},"加":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"以":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"就":{"docs":{},"表":{"docs":{},"示":{"docs":{},"文":{"docs":{},"档":{"docs":{},"生":{"docs":{},"成":{"docs":{},"成":{"docs":{},"功":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"够":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"都":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"套":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"进":{"docs":{},"行":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"装":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"正":{"docs":{},"确":{"docs":{},"层":{"docs":{},"级":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"的":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"决":{"docs":{},"定":{"docs":{},"请":{"docs":{},"求":{"docs":{},"是":{"docs":{},"否":{"docs":{},"继":{"docs":{},"续":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"提":{"docs":{},"供":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}},"任":{"docs":{},"何":{"docs":{},"更":{"docs":{},"新":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},"工":{"docs":{},"具":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"两":{"docs":{},"个":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"业":{"docs":{},"务":{"docs":{},"有":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"包":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"退":{"docs":{},"出":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"些":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}},"了":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"器":{"docs":{},"机":{"docs":{},"制":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":10.009803921568627}}}}},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}},"镜":{"docs":{},"像":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"[":{"docs":{},":":{"docs":{},"模":{"docs":{},"块":{"docs":{},"名":{"docs":{},"]":{"docs":{},":":{"docs":{},"错":{"docs":{},"误":{"docs":{},"名":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"目":{"docs":{},"录":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":10.002358490566039}}}}}}}},"负":{"docs":{},"责":{"docs":{},"人":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"配":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"将":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"看":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"部":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"时":{"docs":{},"添":{"docs":{},"加":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"}":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"{":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"&":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.333333333333333}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"{":{"docs":{},"}":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}},"(":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0002955956251847473}},"*":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"t":{"docs":{},"x":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"m":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},"docs":{}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"b":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},".":{"docs":{},"r":{"docs":{},".":{"docs":{},"t":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},":":{"8":{"0":{"8":{"0":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"=":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454},"./":{"ref":"./","tf":0.005616316878510198},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"[":{"0":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"5":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"f":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"docs":{}},"docs":{}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"docs":{},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}},"docs":{}},"docs":{}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.002069169376293231},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0017735737511084836},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0011823825007389892}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"{":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"m":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0029559562518474726}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0026603606266627253}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"*":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"i":{"docs":{},"d":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},"`":{"docs":{},"/":{"docs":{},"`":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}},"t":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/config.html":{"ref":"topics/config.html","tf":0.043209876543209874},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"./":{"ref":"./","tf":0.0002955956251847473}}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"c":{"docs":{},"k":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"w":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"./":{"ref":"./","tf":0.0014779781259237363}}},"y":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0011823825007389892}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"k":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.018867924528301886},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.06735751295336788},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.02888086642599278},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.05},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.030716723549488054},"topics/service.html":{"ref":"topics/service.html","tf":0.03592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.046822742474916385},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.01300620750812888},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.010416666666666666}},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"s":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}}}}},":":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512},"./":{"ref":"./","tf":0.0008867868755542418}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"让":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"i":{"docs":{},"c":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},":":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}},"s":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"./":{"ref":"./","tf":0.0008867868755542418},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"s":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"设":{"docs":{},"置":{"docs":{},"当":{"docs":{},"前":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"./":{"ref":"./","tf":0.0008867868755542418}},"r":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"n":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"d":{"docs":{},"o":{"docs":{},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}},"w":{"docs":{},"o":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0029559562518474726},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"b":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"./":{"ref":"./","tf":0.002069169376293231}},"r":{"docs":{},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0011823825007389892}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"y":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"./":{"ref":"./","tf":0.0002955956251847473}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"./":{"ref":"./","tf":0.0002955956251847473}}}}},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"!":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"e":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}}},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}},".":{"docs":{"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}}}}},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.037815126050420166},"./":{"ref":"./","tf":0.015370972509606859},"topics/routes.html":{"ref":"topics/routes.html","tf":0.041666666666666664},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"./":{"ref":"./","tf":0.0002955956251847473}}},"}":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.017341040462427744},"guides/client.html":{"ref":"guides/client.html","tf":0.04534005037783375},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.04201680672268908},"./":{"ref":"./","tf":0.012415016257759386},"topics/routes.html":{"ref":"topics/routes.html","tf":0.016666666666666666},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.016483516483516484}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.014779781259237363},"topics/routes.html":{"ref":"topics/routes.html","tf":0.05},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.02197802197802198}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}},"与":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"名":{"docs":{},"称":{"docs":{},"无":{"docs":{},"关":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"类":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"任":{"docs":{},"何":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"件":{"docs":{},"事":{"docs":{},"情":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"上":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"外":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"十":{"docs":{},"分":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"设":{"docs":{},"置":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"取":{"docs":{},"得":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"中":{"docs":{},"确":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"使":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"始":{"docs":{},"终":{"docs":{},"建":{"docs":{},"议":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"这":{"docs":{},"样":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"时":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"等":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"呈":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"作":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{},"一":{"docs":{},"旦":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"即":{"docs":{},"使":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"发":{"docs":{},"生":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"加":{"docs":{},"载":{"docs":{},"时":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"例":{"docs":{},"值":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"意":{"docs":{},"义":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"值":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"放":{"docs":{},"到":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"放":{"docs":{},"置":{"docs":{},"到":{"docs":{},"全":{"docs":{},"局":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"成":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"删":{"docs":{},"除":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"既":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"里":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"通":{"docs":{},"过":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}},"构":{"docs":{},"建":{"docs":{},"带":{"docs":{},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"在":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"结":{"docs":{},"构":{"docs":{},"对":{"docs":{},"象":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"使":{"docs":{},"用":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"被":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"名":{"docs":{},"称":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"因":{"docs":{},"为":{"docs":{},"只":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"始":{"docs":{},"终":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"。":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"错":{"docs":{},"误":{"docs":{},"仅":{"docs":{},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"异":{"docs":{},"步":{"docs":{},"修":{"docs":{},"改":{"docs":{},"资":{"docs":{},"源":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"删":{"docs":{},"除":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"发":{"docs":{},"出":{"docs":{},"后":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"是":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"加":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"或":{"docs":{},"者":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"供":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"后":{"docs":{},"续":{"docs":{},"查":{"docs":{},"询":{"docs":{},"请":{"docs":{},"求":{"docs":{},"执":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"就":{"docs":{},"要":{"docs":{},"求":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"必":{"docs":{},"须":{"docs":{},"放":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"功":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"以":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"口":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"即":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"如":{"docs":{},"果":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"征":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"携":{"docs":{},"带":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"关":{"docs":{},"于":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"现":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"跟":{"docs":{},"踪":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},":":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"显":{"docs":{},"式":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"收":{"docs":{},"配":{"docs":{},"置":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"些":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"方":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"下":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"据":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"方":{"docs":{},"法":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"比":{"docs":{},"如":{"docs":{},"某":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"包":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":10.004587155963304}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"就":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"都":{"docs":{},"是":{"docs":{},"语":{"docs":{},"义":{"docs":{},"层":{"docs":{},"面":{"docs":{},"的":{"docs":{},",":{"docs":{},"为":{"docs":{},"的":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"得":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}},"一":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"二":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"对":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"直":{"docs":{},"接":{"docs":{},"创":{"docs":{},"建":{"docs":{},"出":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"安":{"docs":{},"装":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"验":{"docs":{},"证":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"种":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"插":{"docs":{},"件":{"docs":{},"允":{"docs":{},"许":{"docs":{},"插":{"docs":{},"件":{"docs":{},"设":{"docs":{},"置":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"无":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"时":{"docs":{},"候":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"不":{"docs":{},"能":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"多":{"docs":{},"个":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"资":{"docs":{},"源":{"docs":{},"唯":{"docs":{},"一":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"添":{"docs":{},"加":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353}},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"匹":{"docs":{},"配":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}},"到":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"类":{"docs":{},"型":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"名":{"docs":{},"称":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"一":{"docs":{},"般":{"docs":{},"不":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"被":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"变":{"docs":{},"成":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"组":{"docs":{},"合":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"具":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"列":{"docs":{},"表":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"里":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":10.023809523809524}},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"追":{"docs":{},"踪":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":10.016129032258064}},"基":{"docs":{},"于":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"返":{"docs":{},"回":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"自":{"docs":{},"动":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"的":{"docs":{},"是":{"docs":{},"资":{"docs":{},"源":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"回":{"docs":{},"去":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"是":{"docs":{},"否":{"docs":{},"健":{"docs":{},"康":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"出":{"docs":{},"去":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"遵":{"docs":{},"守":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"里":{"docs":{},"取":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"的":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"文":{"docs":{},"本":{"docs":{},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"链":{"docs":{},"接":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":10.004484304932735}}}}},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"在":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"生":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"四":{"docs":{},"个":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"了":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"路":{"docs":{},"径":{"docs":{},"为":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":5.0054945054945055}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.004433934377771209},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.027472527472527472}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":10.030188679245283},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01444043321299639},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"./":{"ref":"./","tf":0.0035471475022169673},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"./":{"ref":"./","tf":0.0005911912503694946}}},"s":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"./":{"ref":"./","tf":0.0014779781259237363},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":10}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":10},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"./":{"ref":"./","tf":0.0011823825007389892}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"./":{"ref":"./","tf":0.0014779781259237363}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"(":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}},"。":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},";":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/config.html":{"ref":"topics/config.html","tf":0.020061728395061727},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563},"./":{"ref":"./","tf":0.0002955956251847473},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}},"m":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"u":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0008867868755542418},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"./":{"ref":"./","tf":0.0005911912503694946}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.016981132075471698},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"./":{"ref":"./","tf":0.0002955956251847473}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"o":{"docs":{},"f":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"v":{"2":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"docs":{}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"./":{"ref":"./","tf":0.0011823825007389892},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},"c":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}},"e":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"./":{"ref":"./","tf":0.0011823825007389892}},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}}}},"docs":{}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"s":{"docs":{},")":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"|":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"./":{"ref":"./","tf":0.0023647650014779783},"topics/validation.html":{"ref":"topics/validation.html","tf":0.01744186046511628},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.006944444444444444}}},"公":{"docs":{},"开":{"docs":{},"给":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}},"共":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"构":{"docs":{},"建":{"docs":{},",":{"docs":{},"而":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"查":{"docs":{},"看":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"成":{"docs":{},"为":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"且":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"一":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"从":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{},"之":{"docs":{},"前":{"docs":{},"让":{"docs":{},"用":{"docs":{},"户":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"而":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"生":{"docs":{},"成":{"docs":{},"服":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"一":{"docs":{},"些":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"交":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"代":{"docs":{},"码":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":10.002518891687657},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"是":{"docs":{},"版":{"docs":{},"本":{"docs":{},"化":{"docs":{},"的":{"docs":{},",":{"docs":{},"版":{"docs":{},"本":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"两":{"docs":{},"者":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"新":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},",":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"器":{"docs":{},"这":{"docs":{},"个":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"特":{"docs":{},"定":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"而":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"读":{"docs":{},"基":{"docs":{},"本":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"则":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"效":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"对":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"端":{"docs":{},"口":{"docs":{},"提":{"docs":{},"供":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"防":{"docs":{},"止":{"docs":{},"端":{"docs":{},"口":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"名":{"docs":{},"称":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"该":{"docs":{},"命":{"docs":{},"令":{"docs":{},"不":{"docs":{},"会":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"输":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"日":{"docs":{},"志":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"会":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"!":{"docs":{},"=":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723},"./":{"ref":"./","tf":0.0014779781259237363},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907},"./":{"ref":"./","tf":0.0005911912503694946},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.03536977491961415},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}}}}}}}}}},"v":{"1":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}},"/":{"docs":{},"*":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},".":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"来":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":10.003058103975535}},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"尚":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},")":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"指":{"docs":{},"定":{"docs":{},"其":{"docs":{},"他":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"良":{"docs":{},"好":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"以":{"docs":{},"供":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"限":{"docs":{},"制":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"x":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}},"m":{"docs":{},"l":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"取":{"docs":{},"得":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"会":{"docs":{},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"框":{"docs":{},"架":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"在":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"就":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"这":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"还":{"docs":{},"有":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"些":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"私":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"插":{"docs":{},"件":{"docs":{},"应":{"docs":{},"该":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"件":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"则":{"docs":{},"负":{"docs":{},"责":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"转":{"docs":{},"换":{"docs":{},"等":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"更":{"docs":{},"加":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"化":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"被":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"由":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"注":{"docs":{},"册":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"包":{"docs":{},"装":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"一":{"docs":{},"组":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"个":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"用":{"docs":{},"于":{"docs":{},"校":{"docs":{},"验":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"方":{"docs":{},"法":{"docs":{},"注":{"docs":{},"册":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"进":{"docs":{},"行":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"包":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"是":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"插":{"docs":{},"件":{"docs":{},"能":{"docs":{},"力":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}},"括":{"docs":{},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"占":{"docs":{},"位":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"值":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"对":{"docs":{},"应":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"分":{"docs":{},"离":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"基":{"docs":{},"础":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"共":{"docs":{},"工":{"docs":{},"具":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{},"采":{"docs":{},"集":{"docs":{},"端":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"包":{"docs":{},"含":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"多":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"基":{"docs":{},"于":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"际":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"如":{"docs":{},"下":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"的":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"之":{"docs":{},"所":{"docs":{},"以":{"docs":{},"不":{"docs":{},"复":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"类":{"docs":{},"型":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"稍":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"包":{"docs":{},"含":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"进":{"docs":{},"行":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"路":{"docs":{},"由":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"和":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"其":{"docs":{},"他":{"docs":{},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"的":{"docs":{},"包":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"借":{"docs":{},"助":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}},"会":{"docs":{},"从":{"docs":{},"以":{"docs":{},"下":{"docs":{},"文":{"docs":{},"件":{"docs":{},"列":{"docs":{},"表":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"包":{"docs":{},"都":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"简":{"docs":{},"单":{"docs":{},"很":{"docs":{},"多":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"里":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"去":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"名":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"际":{"docs":{},"上":{"docs":{},"要":{"docs":{},"填":{"docs":{},"写":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"只":{"docs":{},"与":{"docs":{},"自":{"docs":{},"身":{"docs":{},"业":{"docs":{},"务":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"例":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"将":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"它":{"docs":{},"的":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"写":{"docs":{},"入":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"找":{"docs":{},"到":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"才":{"docs":{},"算":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},":":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"包":{"docs":{},"里":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"户":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"上":{"docs":{},"每":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"都":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"注":{"docs":{},"册":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"空":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"身":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"快":{"docs":{},"速":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"过":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},"指":{"docs":{},"定":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"常":{"docs":{},"规":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{},"签":{"docs":{},"名":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"尾":{"docs":{},"部":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"收":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"用":{"docs":{},"于":{"docs":{},"单":{"docs":{},"独":{"docs":{},"配":{"docs":{},"置":{"docs":{},"每":{"docs":{},"一":{"docs":{},"项":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"本":{"docs":{},"身":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"确":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"处":{"docs":{},"理":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"启":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"将":{"docs":{},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"用":{"docs":{},"于":{"docs":{},"接":{"docs":{},"收":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"(":{"docs":{},"都":{"docs":{},"是":{"docs":{},"指":{"docs":{},"针":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"值":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"下":{"docs":{},"查":{"docs":{},"看":{"docs":{},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}},"面":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"来":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"一":{"docs":{},"些":{"docs":{},"附":{"docs":{},"加":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},">":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}},"且":{"docs":{},"成":{"docs":{},"功":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"按":{"docs":{},"照":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{},"链":{"docs":{},"继":{"docs":{},"续":{"docs":{},"传":{"docs":{},"递":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"经":{"docs":{},"由":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"去":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"才":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"而":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}},"负":{"docs":{},"责":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"大":{"docs":{},"致":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},"并":{"docs":{},"不":{"docs":{},"足":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},"繁":{"docs":{},"复":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}},"视":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"大":{"docs":{},"类":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"带":{"docs":{},"有":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"资":{"docs":{},"源":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"或":{"docs":{},"者":{"docs":{},"找":{"docs":{},"不":{"docs":{},"到":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"大":{"docs":{},"类":{"docs":{},"下":{"docs":{},"定":{"docs":{},"义":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"他":{"docs":{},"与":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"具":{"docs":{},"体":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"证":{"docs":{},"书":{"docs":{},"和":{"docs":{},"密":{"docs":{},"钥":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"机":{"docs":{},"制":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":10.004672897196262}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"整":{"docs":{},"合":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"区":{"docs":{},"别":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"统":{"docs":{},"一":{"docs":{},"网":{"docs":{},"关":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"暴":{"docs":{},"露":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"模":{"docs":{},"式":{"docs":{},"后":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":10.014492753623188}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"伪":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"按":{"docs":{},"照":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}},"列":{"docs":{},"包":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"包":{"docs":{},"含":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"上":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"打":{"docs":{},"印":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"。":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"提":{"docs":{},"取":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"监":{"docs":{},"控":{"docs":{},"指":{"docs":{},"标":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":10.027027027027026}},"基":{"docs":{},"于":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"采":{"docs":{},"集":{"docs":{},"指":{"docs":{},"标":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"的":{"docs":{},"提":{"docs":{},"取":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"前":{"docs":{},"缀":{"docs":{},"路":{"docs":{},"径":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}},"性":{"docs":{},"能":{"docs":{},"分":{"docs":{},"析":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":10.03448275862069}},"添":{"docs":{},"加":{"docs":{},"与":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"值":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}}}}}}}},"健":{"docs":{},"康":{"docs":{},"检":{"docs":{},"查":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":10.027777777777779}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}},"应":{"docs":{},"该":{"docs":{},"返":{"docs":{},"回":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":10.0078125}}}}}},"另":{"docs":{},"外":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"大":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{},"即":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"字":{"docs":{},"段":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"具":{"docs":{},"介":{"docs":{},"绍":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"持":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"变":{"docs":{},"更":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"标":{"docs":{},"准":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"识":{"docs":{},"别":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"中":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"引":{"docs":{},"入":{"docs":{},"对":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"容":{"docs":{},"器":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"和":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"验":{"docs":{},"证":{"docs":{},"方":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"这":{"docs":{},"些":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"z":{"docs":{},"]":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"*":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"正":{"docs":{},"则":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"余":{"docs":{},"路":{"docs":{},"径":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"完":{"docs":{},"成":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"也":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"就":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"掉":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"↑":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293}}},"↓":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497}}},"处":{"docs":{},"理":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"等":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"还":{"docs":{},"会":{"docs":{},"将":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"针":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"是":{"docs":{},"针":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"p":{"docs":{},"'":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946},"topics/validation.html":{"ref":"topics/validation.html","tf":0.011627906976744186}}},"g":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/validation.html":{"ref":"topics/validation.html","tf":0.005813953488372093}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"?":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"=":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/metrics.html":{"ref":"topics/metrics.html","tf":0.003472222222222222}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"了":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"于":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"要":{"docs":{},"求":{"docs":{},"每":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"用":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0008867868755542418}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}}}}}}}}}}}}}}}}}}}}},"\\":{"docs":{"./":{"ref":"./","tf":0.0011823825007389892},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.01098901098901099}},"t":{"docs":{},"]":{"docs":{},"*":{"docs":{},"=":{"docs":{},"(":{"docs":{},".":{"docs":{},"*":{"docs":{},")":{"docs":{},"$":{"docs":{},"`":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"\\":{"docs":{},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"反":{"docs":{},"序":{"docs":{},"列":{"docs":{},"化":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"可":{"docs":{},"读":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"。":{"docs":{},"两":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"上":{"docs":{},"述":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"%":{"docs":{},"s":{"docs":{},":":{"docs":{},"%":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473}}}}}}}}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0005911912503694946}}}}},"o":{"docs":{},"u":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333},"topics/cli.html":{"ref":"topics/cli.html","tf":0.013513513513513514}}}},"v":{"docs":{"./":{"ref":"./","tf":0.0002955956251847473},"topics/openapi.html":{"ref":"topics/openapi.html","tf":0.005494505494505495}}}},":":{"docs":{"topics/routes.html":{"ref":"topics/routes.html","tf":0.008333333333333333}}}}}}},"length":6934},"corpusTokens":["!=","\"\"","\"\",","\"${customer}","\"${name}","\"${user}","\"*/*\"","\"*/*\".","\"/\",","\"/api\",","\"/api/v1\",","\"/api/v1/some\".","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"/apis/v1/someapi\"","\"/child\",","\"/echo\",","\"/messages\",","\"/messages/{message}\",","\"/myprof\":","\"/myprof/profile\":","\"/myprof/symbol\":","\"/myprof/trace\":","\"/path\",","\"/path/child\",","\"/path/to/plugin\"","\"/some\",","\"/v2/openapi\",","\"0.0.0.0\"","\"accept\"","\"accept\".","\"alias\"","\"alice\",","\"apach","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"boilerplate\",","\"build","\"clientset/svca\"","\"clientset/svcb\"","\"content","\"context\"","\"context\",","\"converter\"","\"converter\"}","\"correspond","\"count\",","\"creat","\"create\"","\"custom\"","\"data\"","\"debian:jessie\",","\"delete\"","\"descriptors\"","\"docker","\"echo","\"error","\"error\"","\"exampl","\"fatal\"","\"file\"","\"first","\"form\"","\"get","\"get\"","\"github.com/caicloud/nirvana\"","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/definition\"","\"github.com/caicloud/nirvana/log\"","\"github.com/caicloud/nirvana/rest\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"header\"","\"hello","\"here","\"http\"","\"http\",","\"http://localhost:8080/echo?msg=test\"","\"http://localhost:8080/echo?msg=testtesttest\"","\"http://www.apache.org/licenses/licens","\"https\".","\"https://gonirvana.io\",","\"imag","\"info\"","\"init","\"list","\"list\"","\"listmessages\"),","\"localhost:8080\",","\"messag","\"message\":","\"meta\"","\"method","\"methodname\")","\"modifiers\"","\"msg\",","\"msg1\",","\"msg2\",","\"multipart/form","\"myproject/client/v1\"","\"nirvana","\"nirvana\"","\"nirvana\",","\"nirvana_request_latencies\"","\"number","\"openapi","\"origin\"","\"patch\"","\"path","\"path\"","\"pluginname\"","\"prefab\"","\"queri","\"query\"","\"registries\",","\"result","\"runtim","\"second","\"source\".","\"source,name\".","\"struct\"","\"text/plain\"","\"there","\"thi","\"update\"","\"v0.1.0\",","\"v1.0.0\",","\"valid","\"validator\"","\"validator\"}","\"var\"","\"version\",","\"warn\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/clientset","$gopath/src/myproject","$gopath/src/svca","$gopath/src/svcb","$path","${customer})","${id}\")","${name}","%s:%d\",","&&","&clientset{}","&client{","&client{client},","&client{}","&cobra.command{","&common.config{","&container{title,","&container{}","&initoptions{}","&message{","&spec.contactinfo{","&spec.info{","&spec.license{","''","'content","'gt'","'http://localhost:8080/echo?msg=testtesttest'","'myconfig.name.firstname'.","'nirvana.ip'","'{\"name\":","(","(*api.definitions,","(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(*client,","(*container)(nil)","(*definitions,","(*http.response,","(*message,","(*spec.swagger,","(*types.package,","([]message,","([]string,","(a","(ac","(against","(and","(anytype,","(apachebench)","(b","(bool,","(builder","(c","(checkout","(ctx","(e.g.","(executor,","(exported)","(from","(goon","(i","(in","(includ","(interface,","(interface{},","(m","(messag","(message1","(multipart.file,","(o","(or","(pem","(r","(reader","(response,","(service,","(string,","(types.object,","(uint,","(unexported)","(w.r.t","(with",")","*","*/*","*/*。","*analyz","*analyzer)","*api.message)","*apibuild","*apibuilder)","*ast.commentgroup","*body)","*client","*client)","*clientset)","*cobra.command","*cobra.command)","*cobra.command,","*comment","*config","*config)","*contain","*container)","*converterforanobject)","*definition.definition)","*http.request","*http.request)","*initoptions)","*int,","*map[string]string)","*message,","*message.contain","*nirvana.config)","*pflag.flagset)","*plugininstaller)","*regexp.regexp","*request","*request)","*rest.client","*rest.config)","*string).","*v1.client","*validatorforanobject)","+caicloud:openapi=tru","+nirvana:api=option:\"value\"。","+nirvana:openapi=tru",".",".*:","...","...configurer)","...customoption)","...definition.descriptor)","...filter)","...interface{})","...plugin)","...service.definitionmodifier)","...service.filter)","...string)","../clientset/svca","../clientset/svcb","./","./bin/myproject","./build/myproject/dockerfil","./client","./client.go","./config/","./examples/get","./myproject","./v1/client.go","./v1/types.go","/","//","/apis/v1","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/resourc","/apis/v1/resources/{resource}","/apis/v1/{regexp:[a","/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","/echo","/echo,","/echo[?msg=]","/etc/nirvana/","/go/package/to/your/generated/funct","/go/package/to/your/typ","/healthz","/healthz。","/home/go/src/myproject","/metric","/path","/path/path2","/path/path2/oth","/path/to/project\",","/some/path","/some/path,","/tmp/swagger.json","/v2/openapi.","/version","/version。","/。","/,如果存在就重定向到没有","/,如果没有就加上","0","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0.","0202","0702","0;","1","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","1.","1.10.x","1.11)中,若项目处于","1.9.x","10","10)","10,","100","100)","1000","1000,","101","101\",\"data\":{\"id\":\"101\"}}","11","11.2","11.3","11.4","11.5","11:18:50.235+08","126","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","16:34:38.663+08","1:","1,并且把","2","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","2.","2.0","2.0\",","2.3.3","200","200,","201","202","204","2295,","260","2774,","28","2:","2>&1","3","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","3.","3.1","3.2","300","4","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","4.","4.2","4.4","404","41","48533","4918,","5","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","5.","500","500,","50554","507","53","55","5842,","6","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","6.","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","7.2","7168,","7231,","7232,","7233,","7235,","73","7725,","8","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","8.1","8080","8080).","8080:8080","8080。","89","9\",\"content\":\"method","9\"}]","90","90m.","98","995",":)",":8080",":=","=","==",">","[*/*]","[0,","[5,","[]*ast.commentgroup","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","[]consumer,","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.middleware{somemiddleware},","[]def.operator{","[]def.parameter{","[]definit","[]definition.definition{","[]definition.descriptor{","[]definition.middleware{newmetricsmiddleware(c.namespace)},","[]definition.operator{","[]definition.operator{newcustom(f,\"custom","[]definition.operator{validator.int(\"gt=10\")},","[]definition.operator{validator.string(\"gt=10\")},","[]definition.operator{validator.struct(&api.message{})},","[]definition.parameter{","[]definition.parameter{},","[]definition.result{","[]descriptor","[]exampl","[]filter","[]funcfield","[]index","[]int","[]message,","[]middlewar","[]oper","[]paramet","[]producer,","[]result","[]string","[]string)","[]string.","[]string{\"text/plain\"},","[]string{commentsoptiondescriptors,","[]string{definition.mimeall},","[]string{definition.mimejson},","[]string{definition.mimetext},","[]string{},","[]structfield","[text/plain]","[{\"id\":0,\"title\":\"method","\\","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","`","`auto`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`converter`.","`default`","`desc:\"debug","`desc:\"desc","`desc:\"log","`desc:\"nirvana","`desc:\"overrid","`desc:\"tl","`desc`","`desc`).","`json:\"content\"`","`json:\"id\"`","`json:\"message\"","`json:\"name\"","`json:\"title\"`","`key`","`name`","`pointer`","`source:\"header,cont","`source:\"header,x","`source:\"path,id\"`","`source:\"query,id,default=100\"`","`source:\"query,start\"`","`source:\"query,start,default=100\"`","`source`","`source`.","`validator`.","a.","ab","abov","above.","above:","accept","accept:","accepttypeal","access","account}/nirvana.git","actions.","activ","actual","ad","add","add(point","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","addhook(hook","addit","addmodifi","addmodifier(modifi","addopt","addoption(prefix","adopt","advanc","aforement","after(ctx","ag","age\"`","agenthostport","aim","alias.","allow","altern","alway","analyz","analyzeranalyz","ananlyzer.","anonym","anoth","anotherautostruct","anyth","anytyp","anytype)","api","api\",","api.getopenapidefinitions,","api.go","api.go:179","api.go:87","api.go:95","api.register(root)","apibuild","apis.","api。","api。api","api,并且允许用户接入其他日志系统。","api,用于取得服务运行时信息。","api,用于生成","api,用于获取一条消息:","appear","append","applic","application'","application.","application/json","application/json\"","application/json'","application/octet","application/x","application/xml","approach","arg","args);","argument","around","array","array\",","array,","associ","asynccr","asyncdelet","asyncpatch","asyncupd","attributes.","author.","auto","automat","avoid","b.","back","badgateway","badrequest","base","baseline,","basic","basics.","befor","before(ctx","before.","behavior","behavior,","behavior.","below","best","between","bin","bind","bit","block","bodi","body()","body(contenttyp","body,","body.","body.nam","body.name)","body,但是","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","boilerpl","boilerplate\")","bool","bool(tag","bool)","bool):","bool,","bool.","boost","box","brief","broken","browser","build","build()","build(reason","builder","builder()","builder.","builder.buildopenapispec(&echo,","builder.buildopenapispec(&yourdescriptor,","builder.go:163","builder.go:178","builder,factori","builder:","buildimag","built","busniess","by:","byte","byte(tag","bytes.","c","c,","c.rest.request(\"get\",","c.set(externalconfigname,","c.svca","c.svca,","c.svcb","c.svcb,","c.v1","c.v1,","caicloud.","call","called.","can't","capabl","care","careful,","carri","case","case,","cases,","categori","category()","categorycustom","categorystruct","categoryvar","cd","cert","certain","certif","cfg","cfg)`","chain","chain)","chain.continue()","chang","char","charact","characters,","characters.","check","checker","checker(check","checkout","child","children","children:","children;","class","clean","cleaner","cleaner.","clearer","cli","cli,","cli.svca().v1().listmessages(context.background(),","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","client.register(root)","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","client。而","client,用于生成","clone","clone(wrapp","cmd","cmd/nirvana","cobra","code","code()","code,","code.","collect","comamnd","combin","combination.","come","comma","command","command(cfg","command,","command.","commands.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","commit","common","complet","complex","complic","concept","concret","conet","config","config(nam","config.","config.configure(metrics.default())","config.configure(nirvana.descriptor(echo))","config.configure(plugin.configa(fieldvalue))","config.configure(profiling.path(\"myprof\"))","config.ip(),","config.json","config.port())","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","configuration,","configuration:","configure(","configure(cfg","configure(configur","configurers.","configurers:","configurer:","config:","conflict","connections.","consist","const","consum","consume(r","consume.","consumeallifconsumesisempti","consumenoneforhttpget","consumers:","consumer,converter,prefab","consumer,即允许请求体为空。","consumer:","consumes.","consumes:","contact:","contacts:","contain","container.","containercontain","container:","content","content\"))","content\",","content\"}","content.","content:","contention(en","contentlength","contentlength()","contenttyp","contenttype()","content}","context","context,","context.","context.context","context.context)","context.context,","context.context。","contexthttpcontext","contextprefab","contextprefab。请参考","contextu","context。http","context。在这种场景下,如果每个","continu","continue(context.context)","continue):","contribut","contriv","conveni","convent","convention,","convert","converter.","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","convertor,","core","core,","correct\")","correct\",","correspond","count","count)","count).","counter","cover","cpu","creat","create:","create)。","creation,","curl","current","custom","custom,","customer.name)","customernotfount","customernotfount.derived(err)","customernotfount.error(customer.name)","customiz","customopt","customtracer(trac","d","data","data\"","data\".","data(&messages).","data(message1).","data(valu","data.","data,然后","db","deal","debian:jessi","debug","decid","declar","dedic","def.dataerrorresults(\"a","def.definition.","def.definition{","def.descriptor{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.prefab,","def.query,","default","default()","default,","default:","default={value}","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","defaulttracer(servicenam","defaultvalu","defaut","defin","defined.","definit","definition.","definition.body,","definition.chain)","definition.create,","definition.data,","definition.descriptor","definition.descriptor.","definition.descriptor{","definition.destin","definition.error,","definition.error。","definition.funct","definition.get,","definition.method","definition.middlewar","definition.oper","definition.operatorfunc(operatorkind,","definition.paramet","definition.produc","definition.query,","definition.sourc","definition.typ","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definition/method","definition:","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definitions:","definition。在我们实际开发过程中,经常会要求","definition。请求过滤器则是在","definition此处的","delet","dep","depend","dep:https://github.com/golang/dep","deriv","derived(","desc","descid","describ","descript","description\")}","description\",","description()","description(descript","description:","descriptions.","descriptor","descriptor'","descriptor(descriptor","descriptor,","descriptor.","descriptor:","descriptors.","descriptors.go","descriptor。","descriptor。然后动态生成一个","descriptor:","design","destin","destination()","destination:","destinationhandl","destinationhandler)","destinationhandlerdestinationhandl","destination:meta,data,error。","detail","details,","develop","developmenet","diagnos","didn't","differ","direct","directli","directori","disabl","disable()","disabled.","discouraged.","distinguish","distribut","divid","do(ctx","do(ctx)","do(req","do.","doc","doc.","doc.go","dockefile),还有一个","docker","dockerfil","docs,","docs.","doctoc","document","documentation.","documentations,","don't","done","done,","doublelog(en","down","draft","dri","e.g.","each","easi","easili","echo","echo\",","echo(ctx","echo,","echo.","echo.go:65","echo.go:67","echocreate,","echoget,","echov2(ctx","echov2,","elaps","elem","element","email:","embed","empti","empty,","enabl","enabled\"`","enableplugin","enableplugin(plugin","encod","encoder(or","encoder)","encoder.encode(swagger);","endpoint","endpoint,","endpoint.","endpoints\",","engin","english","enough","enpoint.","ensur","enter","entranc","entry.","env","env,","equal","err","error","error()","error(...interface{})","error(format","error(v","error)","error)。其中参数的","error,","error.","error:field","errorf","errorf(string,","errorln","errorln(...interface{})","errorproduc","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.badrequest.error(\"nam","errors.badrequest.error(\"y","errors.error","errors.notfound.build(\"myproject:message:messagenotexist\",","errors.notfound.build(\"project:customer:customernotfount\",","errors.notfound.error(\"${customer}","errors:","error。","error。其中","error。创建","error,但是第一种方法比第二种多出更多特性:","errros.","etc","etc.","etc;","even","everyth","ex.","exact","exampl","example\",","example\",\"content\":\"exampl","example):","example,","example.","example.ag","example.firstnam","example:","example_ag","example_first_nam","except","exec","execut","execute(context.context)","execute(descriptor","execute.","executed.","executewithconfig","executewithconfig(cfg","executing.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exist","exists,","exit","exp","exp:","expectationfail","experience.","expired.","export","expos","expression.","extend","extens","extern","externalconfignam","extract","f","f(context.context,","f)","f.","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","facts:","fail","faileddepend","fals","false,","false.","fast","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","featur","few","field","field,","field.","fielda.","fieldb.","fields,","fields.","fieldtype)","file","file(key","file(nam","file)","file,","file.","file。","fill","fillleadingslash","filter","filter(filt","filtered.","filters()","filters.","filters.go","filter。","final","finally,","find","findpackag","findpackages(target","finish","first","first.","firstcontextparamet","firstnam","fix","flag","flag,","flags,","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","flags/env/config","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","flag。","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float*,","float32","float32.","float64","float64((time.since(starttime))","float64.","flow","fmt.print;","fmt.printf;","fmt.println;","follow","for(f","forbidden","fork","form","form(key","form(nam","format","format)","format.","format:","formats)","formatt","format,比如","found\")","found\",","found\")。","four","framework","framework!","framework:","frequent","from.","full","fullmatch:.*","fullmatchregexpnod","func","func()","func(c","func(cmd","func(context.context,","func(ctx","func(d","func(resp","func.","funcfield","function","function.","function:","functionalities.","functions.","functions:","funtion","future.","gatewaytimeout","gen","gen.","gener","generate()","generate(ctx","generation,","generator.","generators/golang","generators/swagg","generators/util","generator。这些","generator:","get","get()","get(inst","get(key","get(typin","get/list","get/sav","get____","getbool","getbool(key","getdefinitions:","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","gethttpclient(req),","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getmessag","getmessage(ctx","getopenapidefinit","getopenapidefinitions.","getopenapideinit","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","get。","get,两者没有区别。","git","git@github.com:{your","github","github.com/caicloud/","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/nirvana","github.com/caicloud/nirvana/cmd/openapi","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/definition/method","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/examples/get","github.com/caicloud/nirvana/log","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","github.com/caicloud/nirvana/plugins/healthcheck","github.com/caicloud/nirvana/plugins/logg","github.com/caicloud/nirvana/plugins/metr","github.com/caicloud/nirvana/plugins/profil","github.com/caicloud/nirvana/plugins/reqlog","github.com/caicloud/nirvana/plugins/trac","github.com/caicloud/nirvana/servic","github.com/go","github.com/golang/dep/cmd/dep","github.com/spf13/cobra","github.com/spf13/vip","githuh","given","glance,","global","glog","glog.","go","go.","go111module=on","goal","goe","golang","golang/dep","golang:latest","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","gone","good","goon,用来确定是否需要执行下一个","gopkg.in/go","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","gracefulli","grep","guid","h","handl","handle(ctx","handle.","handler","handler(request","handler.","handlers.","handler。","handler。这些","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","handler:","happen","hash","hash(hash","header","header(key","header(nam","header.","headers:","headerwrit","headerwritable()","healthcheck","healthchecker)","help","help`,","helper","here","high","higher","highest","highprior","histogram","hold","hood,","hook","hook()","hook)","hook.","host","host:","host:port","hosts:","http","http.defaultcli","http.handler","http.handler,用来处理请求。","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.responsewrit","http.responsewriter,","http.responsewriter.","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","http://127.0.0.1:8081","http://host:port/metrics.","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","http://localhost:8080/apis/v1/messages/101,即可得到一个","http://localhost:8080/apis/v1/messages:","http://localhost:8080/echo","http://localhost:8080/metr","httpcode","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","httpctx","httpctx.request()","httpctx.responsewriter()","httpmethod","https\"`","https.","https://editor.swagger.io/,","httpversionnotsupport","i)","i.e.","id","id\"),","id\",","id,","id.","id/nam","id:","idea","ident","identifi","id,也就是","ifac","ignor","ignored.","imag","image\",","imageprefix","imagesuffix","immedi","immediately.","impact","implement","implementation,","implementation.","implemented:","import","import(path","improv","in()","includ","include:","incom","increas","index","indic","individu","info","info(...interface{})","info(f|ln)","info,","info.","info:","infof","infof(string,","infoln","infoln(...interface{})","infoln.","infoprops:","inform","information.","inherit","init","init()","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","inject","input","input(","input,","input.","insensit","insid","inspect","inspect(context.context)","inspector","inspector:","instal","install(build","install(flag","install/initi","instanc","instance)","instance.","instead","instead,","insterface{})","instrument","instrumentation.","insufficientstorag","int","int(tag","int)","int*,","int,","int.","int16","int16(tag","int32","int32(tag","int32.","int64","int64(tag","int64.","int8","int8(tag","integr","intercept","interfac","interface,","interface.","interface:","interface{}","interface{})","interface{},","intern","internalservererror","interrupt","introduc","introduct","invalid","io.read","io.readclos","io.readcloser,","io.reader,","io.writer,","ip","ip\"`","ip()","ip(ip","ip.","is,","is:","isset","isset(key","it!","it'","it.","it:","itself).","itself.","json","json.marsh","json.newencoder(os.stdout)","json.unmarsh","keep","key","key,","key.","key/valu","key:","keyfil","keyword.","key,默认为","kickoff","kind","kind()","kind.","knob","know","language:","larger","last","lasterrorresult","latenc","latencies.","layout","length","lengthrequir","let'","level","level,","level.","leveldebug","leveldebug)","levels.","librari","license,","license:","lifecycle.","line","list","listen","listen.","listmessag","listmessages(ctx","load;","localhost:8080","locat","locations.","lock","locked()","locked.","log","log.","log.fatal(err)","log.fatalln(err)","log.info(msgs)","log.infof(\"listen","log.logg","log.logger)","log.v(4).info","logger","logger\"`","logger()","logger(l","logger(logg","logger.","logger。","logger,使用的是","logger,用于输出错误。","logic","logo","logs\"`","logs,","logs.","long:","longer","look","loopdetect","lot","lower","lowprior","main","main()","main.go","maintain","make","make([]message,","make(ctx","makefil","makefile,只需要使用简单的","manag","management,","mani","manner","map","map,","map.","map[string][]definit","map[string][]definition.definit","map[string][]definition.middlewar","map[string][]str","map[string]str","map[string]string,会写入","map[typename]*typ","mappings.","marshal","match","match.","matching.","math.maxint32","mean","mechan","mediumprior","mention","messag","message\"),","message\",","message()","message).","message,","message.","message.getmessage,","message.go","message.listmessages,","message1","messagenotexist","messagenotexist.error(id)","messages\"),","messages\",","messages.","meta","meta(valu","method","method)","method,","method.","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","methodnotallow","methods,","methods.","metric","metrics,","metrics.","metrics.namespace(n","metrics.path(\"/metrics\"),","metrics.path(path","micro","microsecond","middlewaar","middlewar","middlewares()","middlewares.","middlewares.go","middlewares:","middlewares,definitions,children","millisecond","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","mind","mirror","missing.","mkdir","mod","mode.","modif","modifi","modifier()","modifier(modifi","modifier.","modifiers.","modifiers.go","modifiers。","modifier。","moditi","modul","monitormiddlewar","more","msg","msg,","msg.message,","msg1","msg2","msg2.","msgs,","multipart/form","multipl","mustnewcli","mustnewclient(cfg","mustnewclientset","mustnewclientset(cfg","myproject","myproject/cli","myproject:v0.1.0","myself\"}'","n","name","name!\")","name\"),","name\"`","name()","name(nam","name,","name.","name:","names.","namespac","namespace(n","namespace.","namespace:","namespaces.","natur","necessary,","need","need.","neg","nest","net/http/pprof","net/http/pprof.","networkauthenticationrequir","new","new(message)","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newclient","newclient(cfg","newclient(cfg)","newclientset","newclientset(cfg","newclientset(cfg)","newcontain","newcontainer()","newcontainer(root","newcontainer(title,","newcustom","newcustom(f","newinitcommand","newinitcommand()","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","newlin","newmetricsmiddleware(namespac","newserv","newserver(c","newsimpleserializer(contenttype)","next","next.continue(ctx)","nil","nil)","nil,","nil.","nil。如果服务异常,则返回相应的错误。","nirvana","nirvana!\",","nirvana,","nirvana.","nirvana.configur","nirvana.descriptor","nirvana.json","nirvana.newdefaultconfig(\"\",","nirvana.newdefaultconfig()","nirvana.newdefaultconfig(),","nirvana.newdefaultconfig().","nirvana.newserver(config).serve();","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana.toml","nirvana.yaml","nirvana.yaml。","nirvana:","nirvana_ip).","nirvana_request_count","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"\",method=\"get\",path=\"/echo\"}","nirvana_request_count{client=\"apachebench/2.3\",code=\"200\",contenttype=\"application/json\",method=\"get\",path=\"/echo\"}","nirvana_request_lat","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/echo\",le=\"8e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"+inf\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.1\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"0.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"102.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"12.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"125000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"13107.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1638.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"1e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"204.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"25.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"250000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"26214.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"2e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"3276.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"409.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"4e+06\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"500000\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"51.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"52428.8\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6.4\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"6553.6\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"819.2\"}","nirvana_request_latencies_bucket{method=\"get\",path=\"/metrics\",le=\"8e+06\"}","nirvana_request_latencies_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summari","nirvana_request_latencies_summary_count{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_count{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_summary_sum{method=\"get\",path=\"/metrics\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/echo\",quantile=\"0.99\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.5\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.9\"}","nirvana_request_latencies_summary{method=\"get\",path=\"/metrics\",quantile=\"0.99\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/echo\"}","nirvana_request_latencies_sum{method=\"get\",path=\"/metrics\"}","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","nobodi","nobody@nobody.io","node.","node:","nodes:","non","notaccept","note","notextend","notfound","noth","nothing)","notice:","notimpl","now","number","obey","object","object,","object.","objectof","objectof(pkg,","objv2,","obtain","occur","occurs,","occurs.","offset","ok","ok,","on","on,","on.","onc","once.","one,","one.","opeartor","open","openapi","openapi\",","openapi()","openapi,","openapi.","openapi/spec","opentrac","opentracing.span)","opentracing.tracer)","oper","operate(ctx","operator'","operator,","operator.","operator;","operatorfunc","operatorfunc(kind","operatorkind","operators.","operators/convert","operators/valid","operators:","operators:","operator。","operator,那么","operator:","operator:valid","optim","option","option,","optional.","options.","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","optionsregexp","option,并且实现","order.","order:","origin","os.exit(1)","os.exit(1).","others).","otherwis","out","out()","output","outsid","overrid","override,","overrideglob","p","p90","packag","package,","package.","package:","packagecom","packagecomments(path","packages(par","packages.","page.","panic","panic(err)","panic.","panic。","paramet","parameter\",","parameter,","parameter.","parameter.default","parameter:","parametergener","parametergenerator)","parametergeneratorparametergener","parameters,","parameters.","parameters:","parent","parent'","pars","parsecom","parsecomments(com","parserequestform","part","partial","pass","patch","path","path(\"message\",","path(key","path(nam","path(path","path).observe(elapsed)","path,","path.","path:","pathnod","paths:","path,query,header,form,file,bodi","pattern","paymentrequir","peopl","performant,","philosophi","pkg","pkg/api","pkg/apis/modifi","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","pkgpath","place","playground/validator.v9","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","playground/validator,提供了用于生成","pleas","plugin","plugin,","plugin.","plugin:","plugininstal","plugins.","po","point","pointer","pointer.","popular?","port","port\"`","port()","port(port","port.","pos.","posit","post","pprof","pprof,","pr","practic","pre","preconditionfail","preconditionrequir","predefin","prefab","prefab。","prefab。启用之后,所有业务函数的第一个参数必须是","prefab,即","prefab,名称为","prefix","prefix\")","prefix\",","prefix,","prefix:","prefix,那么","present","prevent","previou","printer","prior","prioriti","priority()","privat","process","produc","produce(w","produce.","produceallifproducesisempti","producenoneforhttpdelet","producerconsum","producers,并且他们的行为和","producers:","producer。","producer,即允许响应体为空。","producer:","produces,","produces.","produces:","product","profil","profiling,","profiling.","program","project","project\")","project.register(root)","project:","prometheu","prometheus,提供了一个","propos","provid","proxyauthrequir","put","put()","put(in","put(inst","putinterfac","putinterface(ifac","qualifi","queri","query(\"count\",","query(key","query(nam","query,head","quick","quit","r","random","read","readable.","reader","reader.","readme.md","ready,","reason","reason,","reason.","reason。","reason,方便客户端判断错误类型。","recal","receiv","recommend","recommended.","recovered.","redirecttrailingslash","refer","reflect","reflect.kind","reflect.structtag","reflect.typ","reflect.type)","regexp","regexp.mustcompile(`^[","regexp:","regexp:[a","regexpnod","regexpnode.","regiser.","regist","register([]def.descriptor{{","register(root","registerconfiginstaller(ci","registerdestinationhandl","registerdestinationhandler(handl","registerparametergener","registerparametergenerator(gener","registerprefab()","registri","registries\")","regular","relat","relationship","replac","replacement:","repli","repo","report","req","req.header.get(\"cont","req.url.path","request","request()","request(method","request)","request,","request.","request;","requestcounter.withlabelvalues(req.method,","requestedrangenotsatisfi","requestentitytoolarg","requestexecutor","requestheaderfieldstoolarg","requestid(en","requestidkey(key","requestlatencies.withlabelvalues(req.method,","requestlatenciessummary.withlabelvalues(req.method,","requests.","requests:","requesttimeout","requesturitoolong","request。config","requir","resourc","resource,","resource.","resp","respons","response.","responsewrit","responsewriter()","responsewriterresponsewrit","responsewriter。可是使用","rest","rest.newclient(cfg)","result","result\",","result.","results,","results.","results:","results。其中","retriev","retrun","return","return.","rewrit","rfc","right.","root","root.addcommand(newinitcommand())","root.execute();","rout","routepath()","router","router.","routingchain","routingchain)","routingchain.continue()","rule,","rules:","run","run(cmd","run.","run:","runtimeimag","same","satisfi","scheme","scheme.","scheme:","schemes:","scope","scratch","second","see","seen","segment.","select","send","sens","sent.","separ","sequenc","serial","serv","serve()","serve=\":8081\"","server","server\",","server,","server.","servic","service!","service.","service.builder,","service.contextprefab。这个","service.httpcontextfrom(ctx)","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","service.servehttp()","service/rout","service;","services.","serviceunavail","set","set(key","set(nam","set.","setdefaultlogger()","sethook","sethook(hook","setlogg","setlogger(logg","setmodifi","setmodifier(m","settings:","sever","severity.","severityerror","severityfat","severityinfo","severitywarn","short","short:","shortflag","show","shown","shut","shutdown","shutdown(ctx","shutdown,","signatur","signature:","signatures)","silentlogg","similar","simpl","simple.","simpler","simpli","simply.","simul","singl","site","situation.","sleep","slice,","small","smoothli","snippet","someapi","somedefinitions,","somefunction()","somemiddlewar","somemiddlewares,","someth","something.","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","sourc","source()","source,name[,default=value]","source.","source:","sourceaddr(en","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","source。其他的","source:path,query,header,form,file,body,auto,prefab。","spam","span","span.","spec.","spec.infoprops{","special","specially.","specif","specifi","specification:","specified,","standard","start","started/basics/echo.go","started/metrics/echo.go","started/openapi/echo.go","started/openapi/pkg/api","started/validator/echo.go","starting.","starts.","starttim","static","statu","statuscod","statuscode()","stderr","stdlogger。可以通过","stdout","step","still","store,","store.","straightforward,","strconv.itoa(msg),","strconv.itoa(resp.statuscode())).inc()","stream","stream\"","string","string(tag","string)","string).","string):","string,","string.","string/[]byte/io.read","string/[]byte/io.reader/struct","stringnod","stripped.","strongli","struct","struct\",","struct(inst","struct,","struct.","struct:","structfield","structs,","structur","structure\",","struct{}","stuff","sub","submatches.","subsequ","succeess","success","success\",","such","suffix\")","suffix\",","summari","summary:","support","support,","support.","sure","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","swagger","swagger,","swagger.json","switch","symbol","system","tabl","table:","tag","tag()","tag.","tags.","tag。","take","target","target.","tbd","teach","teapot","tell","tenant","tenant,default=test\"`","termin","terminal,","terminal:","terminating.","test","testtesttest","text/plain","that:","the/rest/path","then,","therefor","therefore,","this:","though","three","time","time,","time.dur","time.duration.","time.millisecond)","time.now()","times,","tire","titl","title:","tl","tls(certfile,","to:","todo:","token.pos)","toolchains\",","toomanyrequest","total.","touch","trace","tracer","tracing,","translat","treat","tri","true,","true,那么除了设置当前","two","type","type\"","type\"),","type\"`","type()","type.","type.fieldbyindex.","type:","typenam","typenameinvalid","types.","types.go","types:","type为了能让","typic","u","uint","uint(tag","uint(value),","uint)","uint*,","uint.","uint16","uint16(tag","uint16)","uint32","uint32(tag","uint32.","uint64","uint64(tag","uint64.","uint8","uint8(tag","uintptr","unambigu","unauthor","unavailableforlegalreason","under","understand","unimport","uninstal","uninstall(build","uniqu","unix","unless","unlik","unmarsh","unprocessableent","unsupportedmediatyp","until","up","updat","upgrad","upgraderequir","upper","url","url:","urlencod","urlencoded\"","us","usability.","usag","usage.","use,","use.","use:","used.","user","user,","usual","usually,","util","v","v(level)","v.","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","v2","valid","valid.","validate(cmd","validate(nam","validate(object.(*object));","validate(target","validate.","validate:\"gt=10\"`","validate:\"required\"`","validation)","validation,","validation.","validation:","validator'","validator.","validator.int(\"min=1\"),","validator.int,","validator.newcustom(","validator.str","validator.uint(\"min=1\"),","validator:","validatorforanobject","validators,用于","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","values.","var","var,","variantalsonegoti","vc","velocity.","vendor","vendor。","verb","verb,","verbos","verboser,","verboser.","veri","verifi","version","version(vers","version.go","version:","versions:","via","via:","view","viper","w.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","way","ways.","we'll","we'v","wealth","well","well.","whether","whole","within","without","won't","works!","works:","world!\",","wrapper","wrapper.","write","writeheader()","writeheader().","writer.","written","wrong","wrong,","wrong.","www","x","xml.marshal","xml.unmarsh","yaml","you'll","you'v","you:","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","{...)","{...}","{executablefilepath}/","{executablefilepath}/config/","{return","|","}","})","}),","},","}...)","↑","↓","│","└──","├──","。","一个创建命令的私有函数","一个基本的插件框架如下:","一个表示当前命令的所有参数的","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","一致的","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","一般情况下,我们使用最新版本的","一般情况下,插件应该通过插件","一般情况下,用户会使用这个全局的容器。","上","上添加一个中间件用于提取","上的中间件,用于打印所有路由匹配成功的请求的日志。","下查看启用的","下面用一个例子来说明这几个节点:","不能满足实际的业务需求,可以通过","与","与业务函数的参数名称无关。","且成功匹配的情况下,中间件的执行按照","业务函数","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","业务函数返回结果如何放到请求的响应中。","业务方法:","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","两个服务项目。","中","中。","中一类特殊的","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中也提供了直接打包成镜像的命令:","中传递","中使用","中创建","中创建实例并通过","中包含","中包含了两个组件功能实现了","中包含了许多实现了","中可以看到","中定义。api","中定义的动作以及对应的","中实现的唯一一个","中打印表格的功能。","中提供了","中携带","中添加","中添加插件配置。","中的公开字段根据一定的规则(规则参考上面的注释)从","中间件","中间件不应该修改","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件接口如下:","中间件添加在","中):","中,context","中,不能在任何子目录下使用","中,业务函数是","中,存在一些","中,我们也经常看到使用数字","中,我们建议所有的","中,所有的","中,提供了","中,每一个","中,目前包括三个命令:","中,都有一组","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","中,错误需要实现","中:","为","为了保证业务与","为了方便使用,nirvana","为了演示这个过程,我们逐步构建这个项目。","为所有","为所有的","为空的","为被替换为","主要是以","之上,构建了","之前。","之前使用。","之前,需要知道以下几件事情:","之后,编译运行。然后访问","之后,通过","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","也在当前包中。如果需要对配置进行扩展,增强","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","也就是说,业务可以完全不依赖框架。","也提供对","于","于是","介绍","从","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","从请求中获取数据。","从请求的那一部分取得数据,然后传递给业务函数。","代码如下:","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","以及插件化功能。","以外,config","以外,还会设置全局的","会从第一个","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","会把对应的","会显得非常冗余。因此","会生成一个完整的","会被由命令","会读取","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","但是一般情况下,我们不应该这样使用","但是为了使","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","使用客户端","使用方法如下:","使用自定义的","使用范例","使用默认的","依赖的结构体都会被提取出来并生成到","保存了一个请求的数据,用","信息。","信息的提取。","修改。","修改一个资源的部分内容","修改器","修改器用于在生成路由之前修改","修改器,请求过滤器,api","值","值。一般情况下可以设置为代码的","健康检查插件","健康检查插件提供一个","先执行。并且执行之后会返回","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","公共部分的构建,而每个","公开给用户使用。于是我们需要给","关闭插件","其中","其他与","其他与具体","具体实例类型","内部,比如一个","准备工作","函数。请参考","函数即可:","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","分别对应","列表的","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","则是将业务函数的返回值转换并写入到响应的","则用于判断一个错误是否是由当前的","则用于构建特定的","则由","则表示请求不应该被继续处理,立刻丢弃。","则负责将业务函数的返回结果写入到响应体中。","则针对单个的业务参数和返回值,可以对值进行验证和修改。","创建","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","创建的项目中,可以在","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","创建,用来表示每一个","删除一个资源","到命令中","到自己的账户下,然后下载源码到本地开发目录中:","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","前缀路径","剩余路径类型节点","剩余路径类型节点:","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","功能,并提供了从","功能:","加上","加上一些附加属性,用来表示返回的错误码等信息。","加上空的","包","包中存在三个概念,分别是","包中对","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中):","包中,可以看到","包中,提供了如下功能:","包之间的依赖关系:","包介绍","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包会从以下文件列表中读取配置文件:","包依赖了","包则是利用了","包利用","包包含","包包含了","包包含多个工具用于","包和","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包实现了框架","包实际上都是利用了","包帮助用户快速构建项目。","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包提供了一个","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包提供了一个简单的","包提供了一系列的方法帮助用户快速生成用于校验参数的","包提供了一组基础的日志","包提供了工具方法用于将转换函数包装成","包提供了相应的工具用于注册用户自己的","包提供的","包提供的数据结构生成","包提供的方法注册自定义的","包提供的方法进行注册:","包是一个全局实例容器,每种类型对应一个实例。","包有一个默认的","包来说就简单很多了,这个包里包含一个","包注册指标。采集端可以通过","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包的","包的依赖,可以自行实现错误包,只要产出的错误符合","包的入口是","包的实现基于","包的插件能力:","包相对","包类似于标准库的","包读取源码并生成","包路径:","包还提供了一个全局的","包还提供了方法用于创建自定义验证器:","包进行","包进行路由构建和匹配。","包里提供了一个","包除了包含对","包,但是提供了方法用于生成格式化的错误和错误判断。","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于分离实例的创建和","包,用于读取项目源码,并生成与","即创建了","即可。","即可得到返回结果:","即可查看文档。","去读取指定路径的源码,然后从中找到标记了","去读取数据并进行类型转换。","参数值来源于","参数值来源于当前","参数名称,作为","参数和返回值定义","参数描述","参数来源","参数的类型转换和数据验证。","参数:","参考了","取得返回值,反序列化成","变更。","另外","只使用","只能生成","只需要将业务函数对应位置的","可以不同。","可以在","可以构建带有","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","可以读取源码,获取结构对象和注释信息。","可以通过","可能不能满足实际使用需求。因此","可被","同等级别的字段","名称","名称为","后通过","启动时会打印出","启用","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件后,可以直接向","启用插件并使用默认配置","命令","命令为例,说明单个命令的基本结构:","命令启动容器,然后进行访问:","命令对应的包在","命令就可以完成编译工作:","和","和一个使用了","和业务函数的参数一一对应,而","和插件系统。这个包放置在根目录中是因为这个包是","和相应的功能。","和端口。","和第三方功能的扩展)。","和返回值的","和配置读取,为","因为只获取一条消息,此处为","因此在","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在","在一个","在一个请求路由匹配成功后,nirvana","在上面的定义中,存在两个额外功能:","在上面的路径节点中,每个节点都可以绑定一个","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在业务的实际场景中,默认提供的","在使用","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在完成了","在完成修改并提交到自己的","在实现一个自定义的","在实际的业务中,http","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在常见的商业","在当前","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在接收到","在整个","在服务启动之后,可以通过浏览器或者命令行访问","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","在每个","在没有","在设计上与现存的一些","在运行过程中使用的","在这个包中,主要包含三个概念:config,cli","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","在需要发布的时候,通常需要打包成镜像的形式,在","在需要生成","在项目的","地址。","基本结构如下:","基础类型的转换器这些转换器一般是用于将请求里的","基础类型,结构体类型和自定义类型。目前验证方法基于","处理框架:","多客户端整合","多客户端整合。","大版本的兼容性。即使用","大部分字段与","如下:","如果","如果以下路径都添加了中间件:","如果希望对","如果接收类型是","如果有多个","如果服务正常,则","如果类型符合","如果能返回一个","如果设置了","如果读取到配置文件,那么除了使用","如果需要新增命令扩展","如果需要给字段设置默认值,则需要使用","字段中,可以在客户端使用","字段无效","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","存在优先级,优先级高的","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","完全匹配。","完成","定义","定义。","定义了","定义了一个返回","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义的无关性,nirvana","定义相关的代码都在这个目录中","定义,再对应业务函数:","定义,可以修改或删除","定义,然后由","定义,用于描述","定义:","实例","实例。","实现了","实现了这个接口后,通过","实现的","实现,帮助用户快速构建名为","实际上是一个","实际上是调用的","实际上要填写的部分就是只与自身业务相关的信息。modifi","客户端。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","容器如下:","对于","对于不需要输出日志的场景,使用","对于中间件而言,处理完当前的任务之后只需要调用","对于没有","对于结构体类型,在需要的字段上添加名为","对于这种错误,都会以","对应","对应一个","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","将","将数据写入到响应。","将框架传递给它的与请求绑定的","将类型转换为字节数据写入到响应体中。","将返回值转换为字节写入响应中。在","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就无效。如果","就能够看到","就足够了。但是为了让错误能够以","尾部是不是存在","工作流程","帮助用户把实例方法转换为","并且会检查最后一个","并使用","并成为","应该返回","开发工具介绍","开发的情况下,需要保持对","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","快速生成","性能分析插件","性能分析插件添加与","成功状态码","我们建议","或","或域名,可以有多个","所有与","所有的","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","执行","执行完成之后,请求也处理完成了。","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","扩展了","指定其他输出目录(目前仅支持生成","接下来以","接下来我们给项目增加一个","接口。swagger","接口。其中","接口。即:","接口。如果实现了,就会以","接口。用户在","接口即可。","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","接口如下(这个接口并没有显式定义在","接口如下:","接口实例类型","接口实现了请求跟踪机制,会在","接口或者是","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","接口,可用于针对单个参数或返回值进行验证和修改:","接口,用于创建具有一类特征的","接口:","接收配置以外,还可以通过一些帮助方法获取配置:","描述","描述。所有的","描述符","描述符。构建完成的","提交代码。","提供了","提供了一个命令用于从项目中生成文档:","提供了一个新的接口:","提供了两种类型的","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","提供了多个方法用于设置生成服务需要的日志,definit","提供的","提供的一些","提供的用于生成","插件","插件实现了这个接口之后,即可通过","插件接口的插件。","插件接口:","插件提供了一个函数接口:","插件机制","支持良好,因此在","数据。","数组包含了这个路径下的所有定义。","整合客户端","文件","文件中,方便客户端使用。","文档","文档。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","文档和客户端。","文档截图如下:","文档生成和客户端生成会依赖这个配置文件进行","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法","方法。","方法。clone","方法。比如某个","方法一","方法二","方法包","方法包。","方法安装插件。","方法就应该是","方法用于在对","方法用于安装","方法用于直接创建出","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","方法获取类型,","方法获得","方法返回,因此这两种类型没有对应的方法。","方法都是语义层面的,为的是提高","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","方法,这个方法是一个抽象方法,用于描述一种行为(比如","无","时候,使用","时,使用","是","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","是一个着重于提高开发效率和业务解耦的","是一个短语,用于描述这个","是一样的。","是业务函数返回值处理器,通过调用","是从","是具体要验证的类型,不能使用接口。","是否由这个错误工厂生成。","是基础包,分别负责日志基础接口和错误处理基础接口。","是对","是由服务端生成而不由客户端提交,error","是真正的参数生成器,通过调用","是返回一个资源列表的,那么","是链式调用的,也就是说上一个","暴露","更新一个资源(幂等)","有","有关的所有数据结构,产出的结构可用于生成文档和客户端。","有关,因此如果多个","有时候默认的验证器不能覆盖复杂的验证需求,因此","服务。","服务。因此","服务使用的协议,只能填写","服务启动提供了命令行支持。","服务用于访问这个文档。打开浏览器,访问","服务配置的特殊性,config","机制,允许在","机制,可以在收到一个请求的时候,立刻进行处理。并根据","机制,用于单独配置每一项信息:","来启用插件,并且将插件","来唯一确定一个错误","来提供","来标志的错误。但是数字","来生成","来生成一个能够处理当前的路由上下文的","来自于服务端本身。","来表达这些配置:","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","构建","标准接口如下:","根命令中,比如:","根据上面的","根据资源唯一","框架。","框架不同,它的核心目标是让业务与框架隔离。","框架中处于最高优先级。filter","框架会为每个请求构建这样的","框架的","框架的设计核心思想是:隔离","框架设计概览","概念","概览","模式后,level","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","正则表达式,用于匹配路径","正确实现","此时","此时在","每个","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","每种","比如设置","没有太大区别:","注册","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","注册需要的","注意,get()","注意:oper","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","注:如果在","注:这个","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","测试以外,还需要使用","添加","添加到","添加成功后,所有前缀匹配","然后创建两个服务项目(仅用于演示):","然后在","然后就可以直接使用命令创建项目(请确保","然后编译运行,访问","版本信息插件","版本信息插件提供一个","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","状态码作为基础的:","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","生成","生成。","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","生成代码","生成代码:","生成代码:","生成匿名函数:","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","生成客户端","生成的客户端代码如下:","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","生成的客户端是版本化的,版本在","生成,客户端代码生成,项目结构生成。","生效之前,对","用于传入参数输出一个真正的错误。","用于传递请求的上下文。context","用于分析源码的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于将请求体中的数据转换为业务函数需要的类型,而","用于描述一个业务函数的参数的来源和默认值。","用于文档和客户端生成","用于暴露服务端指标。","用于构建","用于检查服务是否正常。","用于生成一个匿名函数,生成的函数的签名没有方法的","用于生成业务函数的参数的","用于真正发起请求,并完成","用于表示代码注释的","用于访问","由","由于","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的两个方法:","的主要命令,利用","的使用方法和普通","的入口包。","的兼容性。","的功能,需要按照上述结构进行开发。","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的参数与返回值。","的参数和返回值中,尽量避免使用其他接口。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的各个组件也是依据这个基本法设计的。在","的命令行和其他依赖工具:","的响应,响应体为:","的基础类型,供业务函数使用。//","的填充。","的字段。","的字段。忽略所有没有","的定义。","的定义以外,还提供了一些函数,帮助快速构建","的实例而不是","的客户端:","的对应关系。","的工具","的开发工作后,我们需要将","的形式。","的形式判断一个","的形式向","的形式向客户端返回,我们还需要给","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的情况下,nirvana","的支持。","的数据来源都是来自于请求,而","的文件用于把当前的命令加入到","的方式有两种:","的方法与","的方法:","的最后一个返回值加上","的最小值为","的格式满足:","的注册方法即可注册","的版本号。下表中展示了","的用户提供一个文档,方便用户阅读。nirvana","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的示例:","的第一个参数添加上名为","的结构体类型,会递归遍历以寻找带有","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的请求都会执行这个中间件。","的调用者。这样就完成了对一个项目的","的路径上。","的运行,只用于描述项目的信息以及区分不同版本的","的返回值会作为下一个","的返回值作为","的返回值作为数据返回。","的返回值来确定是直接丢弃该请求还是继续处理。","的返回结果。","的返回结果,构建出相应的客户端和文档。golang","的配置文件在根目录的","的配置,用于创建","的错误)。","的除了","的需要的包定义文件","的顶级包,而且其依赖的所有包只来自","的项目结构如下:","的顺序。","监控指标插件","监控指标插件基于","目前","目前客户端生成对接口的支持还不完善,仅仅对","目前支持三种类型的验证,分别对应","目录下生成","目录下,则还需要运行一下命令开启","目录中就能看到编译后的二进制文件,直接运行:","目录:","直接编译运行","相关接口如下:","相关的所有定义和类型信息。api","相关类型:","真正的实例,即","种类型的","空的","端口提供服务。为了防止端口冲突,可以使用","第一种方法带有","第一种方法支持使用","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型","类型。","类型。业务函数的参数也响应的变成了","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型是否和业务函数的参数类型一致。","类型的","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","类型转换为了","类型):","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","系列包","系列包包含:","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","级别的配置,这些配置是针对当前服务的。而对应的","结构体包含了一个具体的","结构体包含具有如下含义的字段:","结构体,可以组合成一个:","结构,然后再返回给","给项目添加一个","统一网关访问","继承的字段","编写,只是为了通过","编译并打包成","编译运行","编译运行后可以得到结果:","而不是","能转换为可读的数据结构,构建了","自动处理数据转换,nirvana","自定义验证器","自身和标准库(config","范例如下:","范例,因此可以直接运行查看效果。","获取一条消息的","获取接口实例:","获取某个实例的方法,之后再在服务启动逻辑里","获取资源","获取资源列表","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","要求每个插件提供一个","设置","设置为","设置接口实例:","设置服务","设置服务名称","设置服务版本号","设置服务的描述","设置监听的","设置监听的端口。","设置请求","设置路径前缀,默认值为","访问","证书和密钥。","识别的错误,但是如果业务逻辑中如果不希望引入对","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","该命令默认会在","详细描述这个","语言版本(version","语言版本升级到最新版本","说明了请求和响应中的数据类型。为了根据","请求。","请求中使用的都是","请求中,content","请求日志插件","请求日志插件会添加一个在","请求的","请求追踪插件","请求追踪插件基于","读取源码并进行分析,产出","调用,可以生成客户端以供使用:","负责一种类型的参数的验证和类型转换工作。","负责一种类型的返回结果的数据转换工作。","路径","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径匹配完成后,会调用匹配链的最后一个节点的","路径同等级别的字段","路径替换,因此需要正确设置版本规则。","路径默认为","路径,默认值为","路由和处理的所有功能。","转换为路由需要的数据结构,涉及到以下内容:","转换函数必须符合","输出日志如下(项目路径和日志时间会有所不同):","过滤器","过程。也就是可以在声明","返回","返回值可以是任意结构,自动转换并写入到","返回值目标","返回出去,供业务函数使用。//","返回回去。","返回服务当前是否健康。api","返回服务的版本信息。api","返回的是资源数组,所以使用","还会将","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这两种方法都可以创建","这两种类型的请求体,并转换为","这个","这个主要是利用了","这个例子中,验证器要求","这个包并进行命令注册:","这个包方便了用户创建能够被","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个实例方法容器分离了方法的","这个插件暴露三个选项:","这个节点匹配剩余所有路径。","这个过滤器判断","这个过滤器只针对","这个返回值类型必须是","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","这套日志","这就是","这就表示文档生成成功,并且提供了一个","这是一个在","这是一个工具方法,用于快速生成一个参数结构。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","这样做有两个优势:","这样就能够非常方便的错误创建和错误判断了。","这样就能通过","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","这种形式的","这里添加的业务函数都是以","进行了扩展,涉及到字段的改变,也需要在这个包中修改","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行修改。","进行包管理","进行包装的时候,获取正确层级的调用栈信息。","进行开发,但是需要保证两个","进行扩展,需要遵守上面这些规则。","进行描述的。首先看一个","进行注册。然后提供相应的","进行解析。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","选项的注释。两个选项的值对应两个函数,分别返回","通常对应于","通常情况下,我们需要快速添加一些","通常情况下,有","通过","通过具体错误的","那么","那么如果存在请求","部分,例如:","都是通过","都有一个对应的","都通过这个","都遵守","都需要去描述这个参数,那么","配置器机制","配置基本信息以外,还提供了插件机制。","配置文件名:","配置文件,用于描述项目的基本信息和结构。","采集指标数据。","里。","里取值。","里的值进行文本国际化。","里获取的。","针对请求的","链接","错误包","错误类型,必须是","镜像","限制","除了","除了使用","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","除了常规的","除了插件","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。","集合上述所有功能的","需要使用","需要实现接口:","项目","项目。项目结构如下:","项目名[:模块名]:错误名","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","项目,用于保存所有服务的客户端:","风格,并且在","首先会利用","首先创建","首先将","首先看","首部有没有","验证器函数必须符合签名","默认值","默认启用的","默认情况下,nirvana","默认情况下,我们会为每个服务生成如下结构的客户端:","默认情况下,插件会添加四个","默认提供了","默认提供的","默认路径为",",然后在创建项目时添加"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"\n\nTable of Contents generated with DocToc\n\nNirvana\nInstallation\nGetting Started\nAPI quick start\nValidate it!\nIs it popular?\nShow me the doc\n\n\nUser Guide\nAPI Descriptor\nConsumes and Produces\nMiddleware\nAPI Definition\nParameter\nResult\nValidation\nOpenAPI\nConfigurer\nError\nLogging\nPlugins\nMetrics\nProfiling\nTracing\n\n\n\n\nDeveloper Guide and Proposals\nProposals\nPlugin framework\n\n\n\n\n\n\nNirvana\nEnglish version of this docs is expired. We will rewrite it in the future. If you have any idea or you want to contribute to this docs, PLEASE let us know it.\nNirvana is a golang API framework designed for productivity and usability. It aims to be the building block for\nall golang services in Caicloud. The high-level goals and features include:\n\nconsistent API behavior, structure and layout across all golang projects\nimprove engineering productivity with openAPI and client generation, etc\nvalidation can be added by declaring validation method as part of API definition\nout-of-box instrumentation support, e.g. metrics, profiling, tracing, etc\neasy and standard configuration management, as well as standard cli interface\n\nNirvana is also extensible and performant, with the goal to support fast developmenet velocity.\nInstallation\ngo get -u github.com/caicloud/nirvana\n\n# for openapi generation\ngo get -u github.com/caicloud/nirvana/cmd/openapi-gen\nGetting Started\nAPI quick start\nIn Nirvana, APIs are defined via definition.Descriptor. We will not introduce details of the concept Descriptor,\ninstead, let's take a look at a contrived example:\n// API descriptor.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Corresponding to the first result\",\n },\n {\n Destination: definition.Error,\n Description: \"Corresponding to the second result\",\n },\n },\n },\n },\n}\n\nThis is an echo server API descriptor. The descriptor is a bit complex at first glance, but is actually quite\nsimple. Below is a partially translated HTTP language:\nHTTP Path: /echo[?msg=]\nHTTP Method: Get\nHTTP Headers:\n Content-Type: Any Type\n Accept: text/plain or */*\nThe request handler Echo receives two parameters and returns two results, as defined in our descriptor.\nNote the first parameter is always context.Context - it is injected by default config.\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNirvana will parse incoming request and generate function parameters for Echo function as defined via\nDefinition.Parameters - parameters will be converted into the exact type defined in Echo. Once done,\nNirvana collects the results and sends back response.\nWith our API descriptors ready, we can now create a server to serve requests:\npackage main\n\nimport (\n \"context\"\n\n \"github.com/caicloud/nirvana\"\n \"github.com/caicloud/nirvana/definition\"\n \"github.com/caicloud/nirvana/log\"\n)\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(nirvana.Descriptor(echo))\n log.Infof(\"Listening on %s:%d\", config.IP(), config.Port())\n if err := nirvana.NewServer(config).Serve(); err != nil {\n log.Fatal(err)\n }\n}\n\nNow run the server and test it:\ngo run ./examples/getting-started/basics/echo.go\nINFO 0202-16:34:38.663+08 echo.go:65 | Listening on :8080\nINFO 0202-16:34:38.663+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-16:34:38.663+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\ntest\nFor full example code, see basics.\nValidate it!\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :)\n\nFor full example code, see validator. Checkout the source code to see\nhow to add your own validation.\nIs it popular?\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig().\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in milliseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.1\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.2\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.4\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"0.8\"} 11\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1.6\"} 28\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3.2\"} 41\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6.4\"} 73\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"12.8\"} 126\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"25.6\"} 260\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"51.2\"} 507\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"102.4\"} 995\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"204.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"409.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"819.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1638.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"3276.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"6553.6\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"13107.2\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"26214.4\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"52428.8\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.1\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.2\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.4\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"0.8\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1.6\"} 0\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"12.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"25.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"51.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"102.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"204.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"409.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"819.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1638.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"3276.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"6553.6\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"13107.2\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"26214.4\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"52428.8\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 55\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 90\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 101\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 50554\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 3\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 3\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 3\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\nShow me the doc\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +nirvana:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\nUser Guide\nAPI Descriptor\nAPI Descriptor is the core data structure in Nirvana: it holds all API definitions, and is usually the starting\npoint to write your services with Nirvana. Following is the golang type definition of Descriptor:\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nA single descriptor contains API definitions for a single path. It sets Content-Type to be produced and\nconsumed by the path handler. Each descriptor has an array of children; they will all inherit Content-Type\nfrom the parent descriptor, for example:\ndefinition.Descriptor{\n Path: \"/path\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEText},\n Definitions: SomeDefinitions,\n Children: []definition.Descriptor{\n {\n Path: \"/child\",\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n },\n },\n}\n\nThe child descriptor is identical to:\ndefinition.Descriptor{\n Path: \"/path/child\",\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Definitions: SomeDefinitions,\n}\n\nConsumes and Produces\nConsumes and Produces indicate content types that current definitions and child definitions support. Following\nis a table of all supported MIME types and their data types:\n\n\n\nMIME\nConsume\nProduce\nNote\n\n\n\n\nMIMENone\nnil\nnil\nCan be used into Consumes of Get/List and Produces of Delete\n\n\nMIMEText\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEJSON\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEXML\nstring/[]byte/io.Reader/struct\nstring/[]byte/io.Reader/struct\n\n\n\nMIMEOctetStream\nstring/[]byte/io.Reader\nstring/[]byte/io.Reader\n\n\n\nMIMEURLEncoded\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\nMIMEFormData\nnil\nnil\nDepends on Source. Only be used in Consumes\n\n\n\nMiddleware\nMiddleware is a convenient mechanism to intercept HTTP requests entering your application. To use middleware\nin Nirvana, just add your middlewaare definition to API descriptor. For example, below is the code snippet for\nmetrics plugin:\nmonitorMiddleware := definition.Descriptor{\n Path: \"/\",\n Middlewares: []definition.Middleware{newMetricsMiddleware(c.namespace)},\n}\n\nfunc newMetricsMiddleware(namespace string) definition.Middleware {\n ...\n\n // This is the middleware function to be called for each request.\n return func(ctx context.Context, next definition.Chain) error {\n startTime := time.Now()\n err := next.Continue(ctx)\n\n httpCtx := service.HTTPContextFrom(ctx)\n req := httpCtx.Request()\n resp := httpCtx.ResponseWriter()\n path := req.URL.Path\n elapsed := float64((time.Since(startTime)) / time.Millisecond)\n\n requestCounter.WithLabelValues(req.Method, path, getHTTPClient(req), req.Header.Get(\"Content-Type\"), strconv.Itoa(resp.StatusCode())).Inc()\n requestLatencies.WithLabelValues(req.Method, path).Observe(elapsed)\n requestLatenciesSummary.WithLabelValues(req.Method, path).Observe(elapsed)\n\n return err\n }\n}\nUsually, Nirvana users do not care about how middlewares are implemented: they only need to find useful\nmiddlewares and add them to their descriptors. But if necessary, writing your own middleware is also quite\nstraightforward, as shown above.\nUnlike Consumes or Produces, middlewares are not scoped within a single descriptor, which means a\nmiddleware for /some/path will impact all paths with prefix /some/path, even though they are in different\ndescriptors. For example:\ndefinition.Descriptor{\n Path: \"/path\",\n Middlewares: SomeMiddlewares,\n}\ndefinition.Descriptor{\n Path: \"/path/child\",\n}\n\nThe two descriptors do not have any relationship but their path have common prefix, i.e. path of the first\ndescriptor is a prefix of the second descriptor. In such case, SomeMiddlewares are also valid for the second\ndescriptor. For more details, check the design doc of router.\nAPI Definition\nAPI definition is another core data structure in Nirvana: it defines all handlers for your services. Following\nis the golang type definition of Definition:\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\nEach descriptor has multiple API definitions, and A single API definition contains handler for a single path\nand method combination. For example, here we define a descriptor to handle endpoint /echo, with two methods\nGet and Create:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: EchoGet,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n {\n Method: definition.Create,\n Function: EchoCreate,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n },\n },\n}\nBelow is a list of all supported methods, as well as its corresponding HTTP method and success status code. By\nconvention, every API method corresponds to a HTTP method and ONE success status code. If an API function\nreturns no error, Nirvana will return the success status code.\n\n\n\nMethod\nHTTP Method\nSuccess Status Code\n\n\n\n\nList\nGET\n200\n\n\nGet\nGET\n200\n\n\nCreate\nPOST\n201\n\n\nUpdate\nPUT\n200\n\n\nPatch\nPATCH\n200\n\n\nDelete\nDELETE\n204\n\n\nAsyncCreate\nPOST\n202\n\n\nAsyncUpdate\nPUT\n202\n\n\nAsyncPatch\nPATCH\n202\n\n\nAsyncDelete\nDELETE\n202\n\n\n\nParameter\nParameter describes corresponding handler parameters of an API definition. Your request handler will receive\nthe exact number of parameters, with the same index as defined in your API definition. Note most of the times,\nyou will start your service using nirvana.NewDefaultConfig(), which adds request context as the first\nparameter. Therefore, parameters defined in descriptor appear in the second parameter of your request handler.\nFor example, in the following example, our endpoint /echo has two query parameters, and our handler Echo\nreceives three parameters: context, msg1 and msg2.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg1\",\n Description: \"First message to echo\",\n },\n {\n Source: definition.Query,\n Name: \"msg2\",\n Description: \"Second message to echo\",\n },\n },\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"Result to return if success\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg1 string, msg2 string) (string, error) {\n return msg, nil\n}\nBelow is the golang type definition of Parameter:\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\nSource is the source of a parameter, and Name is the key of Source.\n\n\n\nSource\nDescription\n\n\n\n\nPath\nValue from URL path\n\n\nQuery\nValue from URL query string\n\n\nHeader\nValue from HTTP request header\n\n\nForm\nValue from HTTP body. Content-Type must be \"application/x-www-form-urlencoded\" or \"multipart/form-data\"\n\n\nFile\nValue from HTTP body. Content-Type must be \"multipart/form-data\"\n\n\nBody\nValue from HTTP body. Parameters of this type don't need a name\n\n\nAuto\nData receiver must be a struct. Parameters of the type don't need a name.\n\n\nPrefab\nValue from internal method. See Advanced Usage\n\n\n\nThe source Auto is for combining fields in a struct:\n// Here is an example for `Auto` struct.\n// The struct has some fields. Every field has a tag with name `source`.\n// The source should obey the format:\n// Source,Name[,default=value]\n// `Source` and `Name` are the same as before.\n// `default` is optional. its value should be basic data type (bool, int*, uint*, float*, string).\ntype Example struct {\n ID int `source:\"Path,id\"`\n Start int `source:\"Query,id,default=100\"`\n Tenant string `source:\"Header,X-Tenant,default=test\"`\n}\n\nIf you have lots of fields from a request, you can use Auto with a struct to get values from request.\nDon't use it when you only have a few parameters: separated parameters is more readable.\nAll values from HTTP request are string. Nirvana has a mechanism to convert strings to specific types for\nAPI function. The behavior is customizable via operator, which allows you to modify input request. In case\nthere is custom operator, input request will be converted to parameter type of the first operator. Here is\nthe data flow for a parameter:\n\n\nIf Data is empty and Parameter.Default is not nil, default value is used as Typed Data .\nResult\nResult is similar but simpler than Parameter. Its Destination indicates the target to write data. Just\nlike Parameter, we can modify output response via operator; the final returned type will be the return\ntype of the last operator.\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n\n\n\nDestination\nDescription\n\n\n\n\nMeta\nIndicates the value should be written to HTTP response header. Its type must be map[string]string\n\n\nData\nIndicates the value should be written to HTTP response body. The format is decided by HTTP Accept and Definition.Produces\n\n\nError\nIf an error occurs, Meta and Data is ignored. Error message will be written to HTTP response body\n\n\n\nValidation\nValidation is used to validate request input, including request body, query parameter, etc. In Nirvana,\nvalidation is implemented as a parameter operator, so it naturally has access to all request attributes.\nThere are three categories of validation: Var, Struct and Custom, where Var is used to validate basic\nbuilt-in types like string, int, bool, etc; Struct is for struct validation and Custom is for writing\ncustom validation.\nFor Var validation, simply add the validation operator including the type to validate. For example, the\nfollowing example shows a validation used to validate input string length is longer than 10 characters.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg string) (string, error) {\n return msg, nil\n}\n\nNote we are using Validator.String here since our API handler takes string as input. As an other example,\nif we want to validate input parameter is a number larger than 10, we should use:\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: Echo,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Int(\"gt=10\")},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc Echo(ctx context.Context, msg int) (string, error) {\n return strconv.Itoa(msg), nil\n}\n\nHere we've changed validator to validator.Int, and API handler has input parameter int.\nFor Struct validation, the first step is to add a validate tag to our struct, e.g.\n// Message defines the message to echo and to whom the message will be sent.\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nThen, similar to Var validation, we need to add an operator to our API descriptor. A struct instance is\nrequired for Nirvana to make sure the type to validate actually matches handler parameter type.\nvar echo = definition.Descriptor{\n Path: \"/echo\",\n Description: \"Echo API\",\n Definitions: []definition.Definition{\n {\n Method: definition.Create,\n Function: EchoV2,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Parameters: []definition.Parameter{\n {\n Source: definition.Body,\n Name: \"msg\",\n Description: \"Message to echo\",\n Operators: []definition.Operator{validator.Struct(&api.Message{})},\n },\n },\n ...\n },\n },\n}\n\n// API function.\nfunc EchoV2(ctx context.Context, msg *api.Message) (string, error) {\n return msg.Message, nil\n}\n\nFor Custom validation, you'll write your own operator and use it in API descriptor. The operators/validator\npackage contains helper funtions to create custom validator. For example, the following example uses custom\nvalidation to validate the input request body. Nirvana will convert input request to validator's parameter\ntype.\nOperators: []definition.Operator{\n validator.NewCustom(\n func(ctx context.Context, body *Body) error {\n if body.Name == \"\" {\n return errors.BadRequest.Error(\"you should have a name!\")\n }\n if body.Name != \"nirvana\" {\n return errors.BadRequest.Error(\"name ${name} must be nirvana!\", body.Name)\n }\n return nil\n },\n \"validate your name\"),\n},\n\nOpenAPI\nNirvana can generate OpenAPI 2.0 document from code simply.\nIn the example, swagger will be generated by builder of OpenAPI spec. \nThere are two parts of the code, one is meta info and the other is the generated function GetOpenAPIDefinitions\n// swagger is the struct which can be encoded into whole OpenAPI document\nswagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\n\nGetOpenAPIDeinitions is generated from Go types you defined. \nAdd tag +nirvana:openapi=true to the doc.go file in package of api types just like the follow code\n// +nirvana:openapi=true\npackage api\nAnd run cmd to generate the function GetOpenAPIDefinitions.\nIf input(-i) packages are more than one, comma-separated list can be used.\nopenapi-gen \\\n -i /go/package/to/your/types \\\n -p /go/package/to/your/generated/function\nYou can output the documents in json format by json encoder(or yaml format by yaml encoder)\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\nYou can also serve the documents in an OpenAPI endpoint, e.g. /v2/openapi.\nNOTICE: Don't add openapi descriptor into the descriptor passed to the builder.\nvar openapi = definition.Descriptor{\n Path: \"/v2/openapi\",\n Description: \"OpenAPI endpoints\",\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: OpenAPI,\n Consumes: []string{definition.MIMEAll},\n Produces: []string{definition.MIMEJSON},\n Results: []definition.Result{\n {\n Destination: definition.Data,\n Description: \"OpenAPI documents struct\",\n },\n {\n Destination: definition.Error,\n Description: \"Error to return if not success\",\n },\n },\n },\n },\n}\n\nfunc OpenAPI() (*spec.Swagger, error) {\n swagger, err := builder.BuildOpenAPISpec(&yourDescriptor, &common.Config{\n ...\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n }\n return swagger, err\n}\nConfigurer\nNirvana has a mechanism to set partial options into config. Here is an example mentioned above:\nconfig.Configure(nirvana.Descriptor(echo))\n\nIn the example, nirvana.Descriptor returns a configurer and the configurer will install descriptors into nirvana config.\nThere are some inside configurers in the table:\n\n\n\nConfigurer\nDescription\n\n\n\n\nIP\nSet listening ip. Defaults to \"0.0.0.0\"\n\n\nPort\nSet listening port. Defaults to 8080\n\n\nLogger\nSet custom logger\n\n\nDescriptor\nAdd API descriptors\n\n\nFilter\nAdd request filters\n\n\nModifier\nAdd definition modifiers\n\n\n\nPlugins should also use configurers to configure plugins. For more details, see also Plugins\nError\nIn Nirvana core, error always means HTTP status code 500 - we try to avoid adding busniess logic into Nirvana.\nThat is, for error code other than 500, you are responsible to write your own error implementation, which only\nneeds to satisfy the following interface:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nAn error contains status code and error message. Package github.com/caicloud/nirvana/errors provides standard\nerrors implementation and many helper functions. For example:\n// Example 1:\n// Directly create an error.\n// Fields (e.g. ${customer}) in format correspond to args (e.g. customer.Name) in order.\nerrors.NotFound.Error(\"${customer} not found\", customer.Name)\n\n// Example 2:\n// Create an error factory at first.\nvar CustomerNotFount = errors.NotFound.Build(\"Project:Customer:CustomerNotFount\", \"${customer} not found\")\n// Then create error by factory.\nCustomerNotFount.Error(customer.Name)\n// You can check if an error is derived by specified factory.\nif CustomerNotFount.Derived(err) {\n // Do something.\n}\n\nUse interface errors.Error in function signature is strongly discouraged. You should always use standard\nerror interface and create errors by the methods referred above.\nLogging\nNirvana provides a default logging implementation, the API mirrors glog.\nFollowing logging methods are provided with increasing severity.\nInfo\nWarning\nError\nFatal\nKeep in mind that:\n\nEach level comes with formatter and newliner method, i.e. Infof and Infoln\nInfo has verbosity level, for example, you can use log.V(4).Info for unimportant logs\nFatal error will terminate program execution\n\nFor more details, see github.com/caicloud/nirvana/log package.\nPlugins\nMetrics\nThis plugin provides a lot of metrics with standard prometheus format. You can simply\nenable it via:\nconfig.Configure(metrics.Default())\n\nThe plugin will register a middleware and a descriptor into your nirvana server, installing metrics at endpoint\nhttp://host:port/metrics.\nThere are two config knobs in the plugin:\n\nNamespace: Metrics namespace is the prefix of all metric names. Defaults to nirvana.\nPath: Path is the descriptor path. Users can get metrics by the path. Defaults to /metrics\n\nYou can use following two configurers to change the settings:\n\nmetrics.Namespace(ns string): The function can modify metrics namespace.\nmetrics.Path(path string): The function can modity metrics descriptor path.\n\nFor more information about installed metrics, please check Prometheus Doc.\nProfiling\nThis plugin provides capability to install pprof into nirvana server, which is a direct reflection of golang\nstandard library net/http/pprof.\nYou can install the plugin via:\nconfig.Configure(profiling.Path(\"myprof\"))\n\nThen the plugin handles requests for the following paths:\n\n\"/myprof\": Show profiling index page.\n\"/myprof/profile\": Show cpu profile page.\n\"/myprof/symbol\": Show symbol page.\n\"/myprof/trace\": Show trace page.\n\nThe plugin has two configurers:\n\nPath(path string): The function can change profiling descriptor path. Defaults to /debug/pprof\nContention(enable bool): Use to enable contention profiling. Defauts to false.\n\nFor more information about pprof, please check PProf Doc.\nTracing\nTBD\nDeveloper Guide and Proposals\nProposals\n\nkickoff\nframework\n\nPlugin framework\nFollowing is a framework for writing nirvana plugin. All aforementioned built-in plugins are written with the\nframework: they are the best reference implementations if you ever want to draft a new plugin.\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\nThen user can use the plugin by:\nimport \"/path/to/plugin\"\n\nfunc main() {\n config := nirvana.NewDefaultConfig()\n config.Configure(plugin.ConfigA(fieldValue))\n}\n\n"},"guides/project.html":{"url":"guides/project.html","title":"项目结构和初始化","keywords":"","body":"项目结构和初始化\n创建项目\nNirvana 创建项目非常简单,不过在创建项目之前,首先需要下载安装 Nirvana 的命令行和其他依赖工具:\n$ go get -u github.com/caicloud/nirvana/cmd/nirvana\n$ go get -u github.com/golang/dep/cmd/dep\n然后就可以直接使用命令创建项目(请确保 $GOPATH/bin 在 $PATH 中):\n$ cd $GOPATH/src/\n$ nirvana init ./myproject\n$ cd ./myproject\n此时在 $GOPATH/src/myproject 会生成一个完整的 Nirvana 项目。项目结构如下:\n .\n├── bin # 存放编译后的二进制文件\n├── build # 存放项目的 Dockerfile 以及与构建相关的文件\n│ └── myproject # \n│ └── Dockerfile #\n├── cmd # 存放项目的启动命令\n│ └── myproject #\n│ └── main.go # \n├── Gopkg.toml #\n├── Makefile #\n├── nirvana.yaml #\n├── pkg # 所有的业务逻辑都应该在这个目录中\n│ ├── apis # 所有与 Nirvana API 定义相关的代码都在这个目录中\n│ │ ├── api.go #\n│ │ ├── filters # 存放 HTTP Request 过滤器\n│ │ │ └── filters.go #\n│ │ ├── middlewares # 存放 Nirvana 中间件\n│ │ │ └── middlewares.go #\n│ │ ├── modifiers # 存放 Nirvana Definition 修改器\n│ │ │ └── modifiers.go #\n│ │ └── v1 # 存放项目 v1 版本所有的 API 定义\n│ │ ├── converters # 存放 v1 版本需要用到的类型转换器\n│ │ ├── descriptors # 存放 v1 版本的 API 描述符\n│ │ │ ├── descriptors.go #\n│ │ │ └── message.go # 对应 message 业务逻辑的 API 定义,可以修改或删除\n│ │ └── middlewares # 存放 v1 版本需要用到的中间件\n│ │ └── middlewares.go #\n│ ├── message # 业务逻辑目录,这个目录是生成的样板,可以修改或删除\n│ │ └── message.go #\n│ └── version # 项目版本信息目录\n│ └── version.go #\n├── README.md #\n└── vendor #\n这个项目中包含了编译和构建容器的基本工具(Makefile 和 Dockefile),还有一个 golang/dep 的需要的包定义文件 Gopkg.toml。通过如下命令即可完成依赖包的安装:\n$ dep ensure -v\n到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个 API 范例,因此可以直接运行查看效果。\n使用 go module 进行包管理\nNirvana 也提供对 go module 的支持。\n首先将 Go 语言版本升级到最新版本 ,然后在创建项目时添加 --package-manager 参数:\n$ nirvana init --package-manager mod ./myproject\n在当前 GO 语言版本(Version 1.11)中,若项目处于 $GOPATH/src 目录下,则还需要运行一下命令开启 module 功能:\n$ export GO111MODULE=on\n编译运行\n直接编译运行\nNirvana 创建项目时自动生成了 Makefile,只需要使用简单的 make 命令就可以完成编译工作:\n$ make\n在项目的 bin 目录中就能看到编译后的二进制文件,直接运行:\n$ ./bin/myproject\n启动时会打印出 Nirvana 的 Logo 以及当前项目的版本信息以及监听的端口,默认端口是 8080。\n在服务启动之后,可以通过浏览器或者命令行访问 http://localhost:8080/apis/v1/messages:\n$ curl http://localhost:8080/apis/v1/messages\n就能够看到 API 的返回结果。\n编译并打包成 Docker 镜像\n在需要发布的时候,通常需要打包成镜像的形式,在 Makefile 中也提供了直接打包成镜像的命令:\n$ make container\n就会自动开始在容器内编译和打包镜像。不过这个过程中需要 golang:latest 和 debian:jessie 这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改 ./build/myproject/Dockerfile 。\n打包完成后,可以通过 Docker 命令启动容器,然后进行访问:\n$ docker run -p 8080:8080 myproject:v0.1.0\nNirvana 项目配置\n每个 Nirvana 项目都有一个 nirvana.yaml 配置文件,用于描述项目的基本信息和结构。\n# 项目名称\nproject: myproject\n# 项目描述\ndescription: This project uses nirvana as API framework\n# 服务使用的协议,只能填写 http 和 https\nschemes:\n- http\n# 访问 IP 或域名,可以有多个\nhosts:\n- localhost:8080\n# 项目负责人\ncontacts:\n- name: nobody\n email: nobody@nobody.io\n description: Maintain this project\n# 项目 API 版本信息,用于区分不同版本的 API\n# 用于文档和客户端生成\nversions:\n # 版本名称\n- name: v1\n # 版本描述\n description: The v1 version is the first version of this project\n # 版本规则\n rules:\n # 路径前缀,匹配前缀为 \"/apis/v1\" 的 API\n - prefix: /apis/v1\n # 正则表达式,用于匹配路径\n # 如果设置了 prefix,那么 regexp 字段无效\n regexp: \"\"\n # 这个字段仅用于在生成文档和客户端的时候,替换匹配的 API 路径。为空时不会进行替换。\n # 比如设置 replacement = \"/apis/myproject/v1\"\n # 那么 \"/apis/v1/someapi\" 为被替换为 \"/apis/myproject/v1/someapi\"\n replacement: \"\"\n\n这个配置文件不会影响 Server 的运行,只用于描述项目的信息以及区分不同版本的 API。API 文档生成和客户端生成会依赖这个配置文件进行 API 版本识别和 API 路径替换,因此需要正确设置版本规则。\n"},"guides/api.html":{"url":"guides/api.html","title":"API","keywords":"","body":"API\n概念\nNirvana Definition\n在 Nirvana 中,所有的 API 都是通过 Descriptor 和 Definition 进行描述的。首先看一个 List Messages 的 API 定义:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/apis/v1/descriptors/message.go\n\nfunc init() {\n register([]def.Descriptor{{\n // Path 定义了 API 路径\n Path: \"/messages\",\n // Definitions 数组包含了这个路径下的所有定义。\n Definitions: []def.Definition{listMessages},\n },\n }...)\n}\n\n// listMessages 定义了一个返回 Message 列表的 API\nvar listMessages = def.Definition{\n // 这个 API 返回的是资源数组,所以使用 List 方法。\n Method: def.List,\n // Summary 是一个短语,用于描述这个 API 的用途。这个短语在生成文档和客户端的时候用于区分 API。\n // 这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。\n Summary: \"List Messages\",\n // 详细描述这个 API 的用途。\n Description: \"Query a specified number of messages and returns an array\",\n // 业务函数\n Function: message.ListMessages,\n // 对应业务函数的参数信息。用于告知 Nirvana 从请求的那一部分取得数据,然后传递给业务函数。\n Parameters: []def.Parameter{\n {\n // 参数来源\n Source: def.Query,\n // 参数名称,作为 key 从 Source 里取值。\n // 与业务函数的参数名称无关。\n Name: \"count\",\n // 默认值\n Default: 10,\n // 参数描述 \n Description: \"Number of messages\",\n },\n },\n // 对应业务函数的返回结果。用于告知 Nirvana 业务函数返回结果如何放到请求的响应中。\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n根据上面的 API 定义,再对应业务函数:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/message/message.go\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。\nDefinition Method\n在 Nirvana 中,我们建议所有的 API 都遵守 RESTful 风格,并且在 URL 中携带 API 的版本号。下表中展示了 Nirvana 中定义的动作以及对应的 API 定义。\n\n\n\nNirvana 方法\nHTTP 方法\nHTTP 成功状态码\nURL\n描述\n\n\n\n\nList\nGET\n200\n/apis/v1/resources\n获取资源列表\n\n\nGet\nGET\n200\n/apis/v1/resources/{resource}\n根据资源唯一 ID/Name 获取资源\n\n\nCreate\nPOST\n201\n/apis/v1/resources\n创建一个资源(非幂等)\n\n\nUpdate\nPUT\n200\n/apis/v1/resources/{resource}\n更新一个资源(幂等)\n\n\nPatch\nPATCH\n200\n/apis/v1/resources/{resource}\n修改一个资源的部分内容\n\n\nDelete\nDELETE\n204\n/apis/v1/resources/{resource}\n删除一个资源\n\n\nAsyncCreate\nPOST\n202\n/apis/v1/resources\n异步创建资源\n\n\nAsyncUpdate\nPUT\n202\n/apis/v1/resources/{resource}\n异步更新资源\n\n\nAsyncPatch\nPATCH\n202\n/apis/v1/resources/{resource}\n异步修改资源部分内容\n\n\nAsyncDelete\nDELETE\n202\n/apis/v1/resources/{resource}\n异步删除资源\n\n\n\n对于 Nirvana 异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。\n所有的 Nirvana 方法都是语义层面的,为的是提高 API 定义的可读性。也就是说 List 和 Get 在一个 HTTP 请求中使用的都是 GET,两者没有区别。\n但是为了使 API 定义更加明确,我们应该根据场景确定使用哪个 Nirvana 方法。比如某个 API 是返回一个资源列表的,那么 Nirvana 方法就应该是 List 而不是 Get。\nDefinition Source\nDefinition Source 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n参数来源\n名称\n描述\n\n\n\n\nPath\n有\n参数值来源于 API Path\n\n\nQuery\n有\n参数值来源于 URL Query\n\n\nHeader\n有\n参数值来源于 Request Header\n\n\nForm\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 application/x-www-form-urlencoded 或 multipart/form-data\n\n\nFile\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 multipart/form-data\n\n\nBody\n无\n参数值来源于 Request Body\n\n\nAuto\n无\nAuto 类型对应的参数必须是一个结构体,通过结构体的 tag 定义来确定每个字段的来源\n\n\nPrefab\n有\n参数值来源于当前 server 内部,比如一个 DB 链接\n\n\n\nAuto 类型的 tag 范例如下:\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n}\n\ntag 名称为 source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是 Body 类型名称可以为空。\n如果需要给字段设置默认值,则需要使用 default={value} 的形式。 \n如果有多个 Auto 结构体,可以组合成一个:\ntype AnotherAutoStruct struct {\n ...\n}\n\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n AnotherAutoStruct\n}\n\n对于没有 source 的结构体类型,会递归遍历以寻找带有 source 的字段。忽略所有没有 source 的字段。\nDefinition Destination\nDefinition Destination 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n返回值目标\n描述\n\n\n\n\nMeta\n这个返回值类型必须是 map[string]string,会写入 Response Header\n\n\nData\n返回值可以是任意结构,自动转换并写入到 Response Body\n\n\nError\n错误类型,必须是 error\n\n\n\n给项目添加一个 API\n接下来我们给项目增加一个 API,用于获取一条消息:\nfunc init() {\n register([]def.Descriptor{{\n Path: \"/messages\",\n Definitions: []def.Definition{listMessages},\n }, {\n // 获取一条消息的 Descriptor。\n Path: \"/messages/{message}\",\n Definitions: []def.Definition{getMessage},\n },\n }...)\n}\n\n// 获取一条消息的 API 定义。\nvar getMessage = def.Definition{\n // 因为只获取一条消息,此处为 Get。\n Method: def.Get,\n Summary: \"Get Message\",\n Description: \"Get a message by id\",\n // 业务函数\n Function: message.GetMessage,\n Parameters: []def.Parameter{\n // 这是一个工具方法,用于快速生成一个参数结构。\n // message 是从 API Path 里获取的。\n def.PathParameterFor(\"message\", \"Message id\"),\n },\n Results: def.DataErrorResults(\"A message\"),\n}\n\n对应的业务函数如下:\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n添加 API 之后,编译运行。然后访问 http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是 json 类型):\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n这里添加的业务函数都是以 Golang 函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考 方法包。\n"},"guides/doc.html":{"url":"guides/doc.html","title":"生成 API 文档","keywords":"","body":"生成 API 文档\n在完成了 API 的开发工作后,我们需要将 API 公开给用户使用。于是我们需要给 API 的用户提供一个文档,方便用户阅读。Nirvana 提供了一个命令用于从项目中生成文档:\n$ nirvana api --serve=\":8081\"\n默认情况下,nirvana api 会读取 pkg/apis 并使用 8080 端口提供服务。为了防止端口冲突,可以使用 --serve 设置监听的 IP 和端口。\n该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):\nINFO 0702-15:47:52.010+08 api.go:87 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:47:53.499+08 api.go:95 | Project root directory is /home/go/src/myproject\nINFO 0702-15:47:53.500+08 api.go:179 | Listening on 127.0.0.1:8081. Please open your browser to view api docs\n这就表示文档生成成功,并且提供了一个 HTTP 服务用于访问这个文档。打开浏览器,访问 http://127.0.0.1:8081 即可查看文档。\n文档截图如下:\n\n"},"guides/client.html":{"url":"guides/client.html","title":"生成客户端","keywords":"","body":"生成客户端\n生成代码\nAPI 文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行 API 调用,可以生成客户端以供使用:\n$ nirvana client\n该命令默认会在 ./client 目录下生成 golang 客户端代码,可以通过 --output 指定其他输出目录(目前仅支持生成 golang 客户端,其他语言客户端尚不支持)。\n输出日志如下(项目路径和日志时间会有所不同):\nINFO 0702-15:50:54.156+08 client.go:73 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:50:55.609+08 client.go:81 | Project root directory is /home/go/src/myproject\nINFO 0702-15:50:55.610+08 client.go:106 | Generated golang client package myproject/client\n生成的客户端代码如下:\nclient\n├── client.go\n└── v1\n ├── client.go\n └── types.go\n./client.go 生成代码:\npackage client\n\nimport (\n v1 \"myproject/client/v1\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a versioned client.\ntype Interface interface {\n // V1 returns v1 client.\n V1() v1.Interface\n}\n\n// Client contains versioned clients.\ntype Client struct {\n v1 *v1.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (Interface, error) {\n c := &Client{}\n var err error\n\n c.v1, err = v1.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) Interface {\n return &Client{\n v1: v1.MustNewClient(cfg),\n }\n}\n\n// V1 returns a versioned client.\nfunc (c *Client) V1() v1.Interface {\n return c.v1\n}\n\n./v1/client.go 生成代码\npackage v1\n\nimport (\n \"context\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes v1 client.\ntype Interface interface {\n // GetMessage return a message by id.\n GetMessage(ctx context.Context, message int) (message1 *Message, err error)\n // ListMessages returns all messages.\n ListMessages(ctx context.Context, count int) (messages []Message, err error)\n}\n\n// Client for version v1.\ntype Client struct {\n rest *rest.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (*Client, error) {\n client, err := rest.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n return &Client{client}, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) *Client {\n client, err := NewClient(cfg)\n if err != nil {\n panic(err)\n }\n return client\n}\n\n// GetMessage return a message by id.\nfunc (c *Client) GetMessage(ctx context.Context, message int) (message1 *Message, err error) {\n message1 = new(Message)\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages/{message}\").\n Path(\"message\", message).\n Data(message1).\n Do(ctx)\n return\n}\n\n// ListMessages returns all messages.\nfunc (c *Client) ListMessages(ctx context.Context, count int) (messages []Message, err error) {\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages\").\n Query(\"count\", count).\n Data(&messages).\n Do(ctx)\n return\n}\n\n./v1/types.go 生成代码:\npackage v1\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n生成的客户端是版本化的,版本在 nirvana.yaml 中定义。API 依赖的结构体都会被提取出来并生成到 types.go 文件中,方便客户端使用。\n每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考 多客户端整合。\n使用客户端\n客户端的使用非常简单,只需要创建客户端,然后调用相应的 API 函数即可:\nfunc main() {\n cli := client.MustNewClient(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n限制\n目前客户端生成对接口的支持还不完善,仅仅对 io.Reader 和 io.ReadCloser 支持良好,因此在 API 的参数和返回值中,尽量避免使用其他接口。\n"},"concepts/cp.html":{"url":"concepts/cp.html","title":"Consumer && Producer","keywords":"","body":"Consumer and Producer\n包路径: github.com/caicloud/nirvana/service\n在 HTTP 请求中,Content-Type 说明了请求和响应中的数据类型。为了根据 Content-Type 自动处理数据转换,Nirvana 提供了 Consumer 和 Producer 接口。其中 Consumer 用于将请求体中的数据转换为业务函数需要的类型,而 Producer 则负责将业务函数的返回结果写入到响应体中。 \nNirvana 默认提供的 Consumers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 GET 之类的请求,因此不能转换为任何数据类型。\n\n\ntext/plain\n只能生成 string 和 []byte 类型\n\n\napplication/json\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 json.Unmarshal 进行解析。\n\n\napplication/xml\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 xml.Unmarshal 进行解析。\n\n\napplication/octet-stream\n只能生成 string 和 []byte 类型\n\n\napplication/x-www-form-urlencoded\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 类型,因此一般不转换为具体类型。\n\n\nmultipart/form-data\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 或 File 类型,因此一般不转换为具体类型。\n\n\n\nNirvana 默认提供的 Producers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 204 之类的响应,没有响应体,不需要写入。\n\n\ntext/plain\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\napplication/json\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 json.Marshal 将数据写入到响应。\n\n\napplication/xml\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 xml.Marshal 将数据写入到响应。\n\n\napplication/octet-stream\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\n\n添加 Consumer 和 Producer\n在业务的实际场景中,默认提供的 Consumers 和 Producers 可能不能满足实际使用需求。因此 Nirvana 的 service 包提供了相应的工具用于注册用户自己的 Consumer 和 Producer。\n注册 Consumer\nConsumer 需要实现接口:\n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Consumer:\nif err := service.RegisterConsumer(consumer); err != nil {\n log.Fatal(err)\n}\n\n在接收到 Content-Type 与 consumer 一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个 Consumer 去读取数据并进行类型转换。\n注册 Producer\nProducer 需要实现接口:\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Producer:\nif err := service.RegisterProducer(producer); err != nil {\n log.Fatal(err)\n}\n\n在需要生成 Conetent-Type 于 producer 一致的响应,并且业务函数需要返回数据的时候,就会调用这个 producer 将类型转换为字节数据写入到响应体中。\n快速生成 Consumer 和 Producer 的工具\n通常情况下,我们需要快速添加一些 Consumers 和 Producers,并且他们的行为和 application/octet-stream 一致的时候,那么可以直接使用工具方法:\nserializer := NewSimpleSerializer(contentType)\n\nif err := service.RegisterConsumer(serializer); err != nil {\n log.Fatal(err)\n}\n\nif err := service.RegisterProducer(serializer); err != nil {\n log.Fatal(err)\n}\n\n"},"concepts/operator.html":{"url":"concepts/operator.html","title":"Operator","keywords":"","body":"Operator\n包路径: github.com/caicloud/nirvana/definition\n在每个 API Definition 中,都有一组 Parameters 和 Results。其中 Parameters 和业务函数的参数一一对应,而 Results 则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,Nirvana 提供了 Operator 接口,可用于针对单个参数或返回值进行验证和修改:\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n在没有 Operator 的情况下,Nirvana 从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了 Operator,那么 Nirvana 会从第一个 Operator 的 In() 方法获取类型,\n并且会检查最后一个 Operator 的 Out() 类型是否和业务函数的参数类型一致。\n在实际的使用过程中,并不需要实现这个复杂的接口。Nirvana 提供了两种类型的 Operator:Validator 和 Converter。\nValidator\n包路径: github.com/caicloud/nirvana/operators/validator\nvalidator 包的实现基于 go-playground/validator,提供了用于生成 Operator 的方法:\nfunc Struct(instance interface{}) Validator\nfunc String(tag string) Validator\nfunc Int(tag string) Validator\nfunc Int64(tag string) Validator\nfunc Int32(tag string) Validator\nfunc Int16(tag string) Validator\nfunc Int8(tag string) Validator\nfunc Byte(tag string) Validator\nfunc Uint(tag string) Validator\nfunc Uint64(tag string) Validator\nfunc Uint32(tag string) Validator\nfunc Uint16(tag string) Validator\nfunc Uint8(tag string) Validator\nfunc Bool(tag string) Validator\n\n对于结构体类型,在需要的字段上添加名为 validate 的 tag。\n自定义验证器\n有时候默认的验证器不能覆盖复杂的验证需求,因此 validator 包还提供了方法用于创建自定义验证器:\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n验证器函数必须符合签名 func(ctx context.Context, object AnyType) error。其中 AnyType 是具体要验证的类型,不能使用接口。\nConverter\n包路径: github.com/caicloud/nirvana/operators/converter\n除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此 converter 包提供了工具方法用于将转换函数包装成 Operator:\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter\n\n转换函数必须符合 func f(context.Context, string, AnyType) (AnyType, error)。其中参数的 AnyType 和返回值的 AnyType 可以不同。\n在 Definition 中使用 Operator\n这是一个在 List Messages 的 API 中添加 Operator 的示例:\n// Definition\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: message.ListMessages,\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Operators: []def.Operator{\n validator.Int(\"min=1\"),\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n },\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n// 业务函数\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count uint) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n这个例子中,验证器要求 count 的最小值为 1,并且把 int 类型转换为了 uint 类型。业务函数的参数也响应的变成了 uint 类型。\n注意:Operator 是链式调用的,也就是说上一个 Operator 的返回值会作为下一个 Operator 的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:\nOperators: []def.Operator{\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n validator.Uint(\"min=1\"),\n},\n\n但是一般情况下,始终建议验证器放在前面,转换器放在后面。\n"},"concepts/filter.html":{"url":"concepts/filter.html","title":"Filter","keywords":"","body":"过滤器\n包路径: github.com/caicloud/nirvana/service\n在某些场景下,我们需要从源头对请求进行处理和过滤。Nirvana 提供了 Filter 机制,可以在收到一个请求的时候,立刻进行处理。并根据 Filter 的返回值来确定是直接丢弃该请求还是继续处理。\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nFilter 在整个 Nirvana 框架中处于最高优先级。Filter 返回 false 则表示请求不应该被继续处理,立刻丢弃。\nNirvana 提供的一些 Filters\nRedirectTrailingSlash\n这个过滤器判断 URL Path 尾部是不是存在 /,如果存在就重定向到没有 / 的路径上。\nFillLeadingSlash\n这个过滤器判断 URL Path 首部有没有 /,如果没有就加上 /。\nParseRequestForm\n这个过滤器只针对 application/x-www-form-urlencoded 和 multipart/form-data,然后 Parse 这两种类型的请求体,并转换为 Form 和 File。\n"},"concepts/prefab.html":{"url":"concepts/prefab.html","title":"Prefab","keywords":"","body":"Prefab\n包路径: github.com/caicloud/nirvana/service\nPrefab 是 Nirvana 中一类特殊的 Source。其他的 Source 的数据来源都是来自于请求,而 Prefab 来自于服务端本身。\n// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n可以通过 service 包的 RegisterPrefab() 注册需要的 Prefab。\nPrefab 类型的参数在生成文档和客户端的时候会被忽略,因此不要使用 Prefab 从请求中获取数据。\nNirvana 提供的 Prefab\nContextPrefab\nContextPrefab 是 Nirvana 中实现的唯一一个 Prefab,即 service.ContextPrefab。这个 Prefab 将框架传递给它的与请求绑定的 context 返回回去。\n使用方法如下:\nvar someAPI = def.Definition{\n ...\n Parameters: []def.Parameter{\n ...\n {\n Source: def.Prefab,\n Name: \"context\",\n },\n ...\n },\n ...\n}\n\n只需要将业务函数对应位置的 Parameter 设置为 Prefab,名称为 context 即可。\n但是一般情况下,我们不应该这样使用 ContextPrefab。请参考 Modifier 和 Context\n"},"concepts/modifier.html":{"url":"concepts/modifier.html","title":"Modifier","keywords":"","body":"Modifier\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,每一个 API 都有一个对应的 Definition。在我们实际开发过程中,经常会要求 API 和 业务函数有一致的行为表现。比如每个业务函数的第一个参数都是 Context。在这种场景下,如果每个 Definition 都需要去描述这个参数,那么 Definition 会显得非常冗余。因此 Nirvana 提供了 Definition Modifer 机制,允许在 Definition 生效之前,对 Definition 进行修改。\n这样就能通过 Modifier 完成 Definition 公共部分的构建,而每个 Definition 实际上要填写的部分就是只与自身业务相关的信息。Modifier 如下:\ntype DefinitionModifier func(d *definition.Definition)\n\nNirvana 提供的 Modifiers\n在使用 nirvana init 创建的项目中,可以在 pkg/apis/modifiers 下查看启用的 Modifiers。 \n默认启用的 Modifiers 包括:FirstContextParameter,ConsumeAllIfConsumesIsEmpty,ProduceAllIfProducesIsEmpty,ConsumeNoneForHTTPGet,ConsumeNoneForHTTPDelete,ProduceNoneForHTTPDelete。\nFirstContextParameter\n这个 Modifier 为所有 Definition 的第一个参数添加上名为 context 的 Prefab。启用之后,所有业务函数的第一个参数必须是 context.Context。\nConsumeAllIfConsumesIsEmpty\n这个 Modifier 为所有 Consumes 为空的 Definition 加上 */*。\nProduceAllIfProducesIsEmpty\n这个 Modifier 为所有 Produces 为空的 Definition 加上 */*。\nConsumeNoneForHTTPGet\n这个 Modifier 为所有 HTTP GET 类型的 Definition 加上空的 Consumer,即允许请求体为空。\nProduceNoneForHTTPDelete\n这个 Modifier 为所有 HTTP Delete 类型的 Definition 加上空的 Producer,即允许响应体为空。\nLastErrorResult\n这个 Modifier 为所有的 Definition 的最后一个返回值加上 definition.Error。\n"},"concepts/middleware.html":{"url":"concepts/middleware.html","title":"Middleware","keywords":"","body":"中间件\n包路径: github.com/caicloud/nirvana/definition\nNirvana 中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下: \n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过 Chain 进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。\n中间件添加在 Descriptor 中:\ndef.Descriptor{\n Path: \"/path\",\n Middlewares: []def.Middleware{SomeMiddleware},\n}\n\n添加成功后,所有前缀匹配 /path 的请求都会执行这个中间件。\n注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。\n中间件执行顺序\n如果以下路径都添加了中间件:\n1. /\n2. /path\n3. /path/path2\n\n那么如果存在请求 /path/path2/others 且成功匹配的情况下,中间件的执行按照 1 -> 2 -> 3 的顺序。\n中间件只与 URL Path 有关,因此如果多个 Descriptor 中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。\n"},"concepts/context.html":{"url":"concepts/context.html","title":"Context","keywords":"","body":"Context\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,Context 用于传递请求的上下文。Context 中包含 HTTP 的 Request 和 ResponseWriter。可是使用 service 包的 HTTPContextFrom() 方法获得 HTTP Context。HTTP Context 相关接口如下:\n// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\nNirvana 框架会为每个请求构建这样的 HTTPContext。如有必要,可以通过这些接口拿到与请求相关的所有数据。\n在一个请求路由匹配成功后,Nirvana 会把对应的 HTTPContext 传递给中间件,然后由中间件调用链继续传递。最终经由 ContextPrefab 传递给业务函数。\n中间件不应该修改 HTTPContext,除非您明确知道如何修改。\n"},"concepts/source.html":{"url":"concepts/source.html","title":"Parameter Generator","keywords":"","body":"Parameter Generator\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 8 种类型的 Source:Path,Query,Header,Form,File,Body,Auto,Prefab。\n每种 Source 对应一个 Generator。这些 Generator 负责一种类型的参数的验证和类型转换工作。\n// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n如果 Nirvana 默认提供的 Generator 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Generator:\n// RegisterParameterGenerator register a generator.\nfunc RegisterParameterGenerator(generator ParameterGenerator) error\n\n"},"concepts/destination.html":{"url":"concepts/destination.html","title":"Destination Handler","keywords":"","body":"Destination Handler\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 3 种类型的 Destination:Meta,Data,Error。\n每种 Destination 对应一个 Handler。这些 Handler 负责一种类型的返回结果的数据转换工作。\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n如果 Nirvana 默认提供的 Handler 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Handler:\n// RegisterDestinationHandler registers a type handler.\nfunc RegisterDestinationHandler(handler DestinationHandler) error\n\nDefinition Handler 存在优先级,优先级高的 Handler 先执行。并且执行之后会返回 goon,用来确定是否需要执行下一个 Handler。\n"},"concepts/error.html":{"url":"concepts/error.html","title":"错误包","keywords":"","body":"错误包\n包路径: github.com/caicloud/nirvana/errors\nError 介绍\n在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在 golang 中,错误需要实现 error 接口。即:\ntype error interface {\n Error() string\n}\n\n这种形式的 error 接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此 Nirvana 对于这种错误,都会以 500 Internal Server Error 的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。\n于是 Nirvana 提供了一个新的接口:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\n在业务函数中,仍然以 error 的形式返回错误。但是框架会检查返回的错误是否实现了 Error 接口。如果实现了,就会以 Code() 的返回值作为 HTTP 状态码,Message() 的返回值作为数据返回。\nerrors 包\n为了方便使用,Nirvana 提供了 errors 包用于生成 error。创建 error 的方式有两种:\n\n方法一\n\nvar somethingNotCorrect = errors.BadRequest.Build(\"ProjectName:ModuleName:SomethingNotCorrect\", \"${name} is not correct\")\n\nfunc SomeFunction() error {\n // Do something\n return somethingNotCorrect.Error(something.Name)\n}\n\n\n方法二\n\nfunc SomeFunction() error {\n return errors.BadRequest.Error(\"${name} is not correct\", something.Name)\n}\n\n这两种方法都可以创建 error,但是第一种方法比第二种多出更多特性:\n\n第一种方法支持使用 somethingNotCorrect.Derived(err) 的形式判断一个 err 是否由这个错误工厂生成。\n第一种方法带有 Reason,方便客户端判断错误类型。\n\n因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。\nerror 的 Reason\n在实际的业务中,HTTP 状态码并不足以表达业务中繁复的错误。因此我们将 HTTP 状态码视为错误大类(比如 NotFound 表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。\n这样做有两个优势:\n\n通过 HTTP 状态码即可大致判断一个错误的行为\n通过具体错误的 Reason 来唯一确定一个错误\n\n在常见的商业 API 中,我们也经常看到使用数字 ID 来标志的错误。但是数字 ID 的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的 ID,也就是 Reason。\n我们建议 Reason 的格式满足:\n项目名[:模块名]:错误名\n国际化\n使用 errors 包生成的错误会记录每个占位符的名称和值,保存在 data 字段中,可以在客户端使用 data 里的值进行文本国际化。\n使用范例\n在业务函数中使用 errors:\n\nvar messageNotExist = errors.NotFound.Build(\"MyProject:Message:MessageNotExist\", \"there is no message with id ${id}\")\n\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n if id > 100 {\n return nil, messageNotExist.Error(id)\n }\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n编译运行后可以得到结果:\n访问 curl http://localhost:8080/apis/v1/messages/100,即可得到一个 200 的响应,响应体为:\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n访问 curl http://localhost:8080/apis/v1/messages/101,即可得到一个 404 的响应,响应体为:\n{\"reason\":\"MyProject:Message:MessageNotExist\",\"message\":\"there is no message with id 101\",\"data\":{\"id\":\"101\"}}\n"},"concepts/method.html":{"url":"concepts/method.html","title":"方法包","keywords":"","body":"方法包\n包路径: github.com/caicloud/nirvana/definition/method\n在 Nirvana 中,业务函数是 API 请求的 Handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。\n为了保证业务与 API 定义的无关性,Nirvana 提供了 method 包,用于分离实例的创建和 API 定义。\nAPI 定义:\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: method.Get(&message.Container{}, \"ListMessages\"),\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n业务方法:\n// Container contains example title and content of messages.\ntype Container struct {\n Title string\n Content string\n}\n\n// NewContainer creates Container\nfunc NewContainer(title, content string) *Container {\n return &Container{title, content}\n}\n\n// ListMessages returns all messages.\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \nmain.go 中创建实例并通过 Put() 函数放到方法容器中(需要在服务启动之前完成):\nmethod.Put(message.NewContainer(\"Method Example\", \"Method Content\"))\n\n然后编译运行,访问 http://localhost:8080/apis/v1/messages 即可得到返回结果:\n[{\"id\":0,\"title\":\"Method Example 0\",\"content\":\"Method Content 0\"},{\"id\":1,\"title\":\"Method Example 1\",\"content\":\"Method Content 1\"},{\"id\":2,\"title\":\"Method Example 2\",\"content\":\"Method Content 2\"},{\"id\":3,\"title\":\"Method Example 3\",\"content\":\"Method Content 3\"},{\"id\":4,\"title\":\"Method Example 4\",\"content\":\"Method Content 4\"},{\"id\":5,\"title\":\"Method Example 5\",\"content\":\"Method Content 5\"},{\"id\":6,\"title\":\"Method Example 6\",\"content\":\"Method Content 6\"},{\"id\":7,\"title\":\"Method Example 7\",\"content\":\"Method Content 7\"},{\"id\":8,\"title\":\"Method Example 8\",\"content\":\"Method Content 8\"},{\"id\":9,\"title\":\"Method Example 9\",\"content\":\"Method Content 9\"}]\nmethod 包介绍\nmethod 包是一个全局实例容器,每种类型对应一个实例。\n具体实例类型\n使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的 *message.Container 实例。\n其中 Put(ins insterface{}) 函数用于将一个实例放置到全局容器中,形成 类型-实例 的对应关系。\nGet(typIns interface{}, method string) 用于生成一个匿名函数,生成的函数的签名没有方法的 receiver 部分,例如:\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error)\n生成匿名函数:\nfunc (ctx context.Context, count int) ([]Message, error)\n但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。\n这就是 Get() 函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会 panic。\n注意,Get() 函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说 &Container{} 和 (*Container)(nil) 是一样的。\n接口实例类型\n除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。\n设置接口实例:\nmethod.PutInterface((*ArbitraryInterface)(nil), instance)\n\n获取接口实例:\nmethod.Get((*ArbitraryInterface)(nil), \"MethodName\")\n\n"},"concepts/configurer.html":{"url":"concepts/configurer.html","title":"配置器机制","keywords":"","body":"配置器机制\n包路径: github.com/caicloud/nirvana\nNirvana 在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。\nNirvana 的 Config 实现了 Configurer 机制,用于单独配置每一项信息:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config {\n ...\n}\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\nNirvana 提供的 Configurers\nIP(ip string) Configurer\n设置监听的 IP 地址。\nPort(port uint16) Configurer\n设置监听的端口。\nTLS(certFile, keyFile string) Configurer\n设置 TLS 证书和密钥。\nLogger(logger log.Logger) Configurer\n设置 Server 在运行过程中使用的 Logger,用于输出错误。\nFilter(filters ...service.Filter) Configurer\n添加 Filter。\nModifier(modifiers ...service.DefinitionModifier) Configurer\n添加 Modifier。\nDescriptor(descriptors ...definition.Descriptor) Configurer\n添加 API 描述。所有的 API 都通过这个 Configurer 添加到 Nirvana 的 Server 里。\n"},"concepts/plugin.html":{"url":"concepts/plugin.html","title":"插件机制","keywords":"","body":"插件机制\nNirvana 的 Config 除了使用 Configurer 配置基本信息以外,还提供了插件机制。\n插件接口:\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n插件实现了这个接口之后,即可通过 nirvana 包提供的方法进行注册:\nfunc RegisterConfigInstaller(ci ConfigInstaller)\n\n一般情况下,插件应该通过插件 package 的 init() 进行注册。然后提供相应的 Configurer 在 Nirvana 的 Config 中添加插件配置。\nPlugin Framework\n一个基本的插件框架如下:\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\n"},"concepts/clients.html":{"url":"concepts/clients.html","title":"多客户端整合","keywords":"","body":"多客户端整合\n默认情况下,我们会为每个服务生成如下结构的客户端:\nclient\n├── client.go\n├── v1\n│ ├── client.go\n│ └── types.go\n└── v2\n\n在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:\nclientset\n├── svca\n│ ├── client.go\n│ ├── v1\n│ │ ├── client.go\n│ │ └── types.go\n│ └── v2\n└── svcb\n ├── client.go\n ├── v1\n │ ├── client.go\n │ └── types.go\n └── v2\n整合客户端\n为了演示这个过程,我们逐步构建这个项目。\n创建项目\n首先创建 clientset 项目,用于保存所有服务的客户端:\n$ cd $GOPATH/src/\n$ mkdir clientset\n然后创建两个服务项目(仅用于演示):\n$ nirvana init svca\n$ nirvana init svcb\n即创建了 svca 和 svcb 两个服务项目。\n生成客户端\n生成 svca 的客户端:\n$ cd $GOPATH/src/svca\n$ nirvana client --output ../clientset/svca\n生成 svcb 的客户端:\n$ cd $GOPATH/src/svcb\n$ nirvana client --output ../clientset/svcb\n此时 clientset 的项目结构如下:\nclientset\n├── svca\n│ ├── client.go\n│ └── v1\n│ ├── client.go\n│ └── types.go\n└── svcb\n ├── client.go\n └── v1\n ├── client.go\n └── types.go\n这样所有客户端都在一个项目中,不需要依赖其他服务项目。\n统一网关访问\n在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。\n创建 ClientSet\n在 clientset 中创建 clientset.go:\n$ cd $GOPATH/src/clientset\n$ touch clientset.go\nclientset.go 代码如下:\npackage clientset\n\nimport (\n svca \"clientset/svca\"\n svcb \"clientset/svcb\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a clientset.\ntype Interface interface {\n // SvcA returns a client for svc a.\n SvcA() svca.Interface\n // SvcB returns a client for svc b.\n SvcB() svcb.Interface\n}\n\n// ClientSet contains multiple clients.\ntype ClientSet struct {\n svcA svca.Interface\n svcB svcb.Interface\n}\n\n// NewClientSet creates a new client set.\nfunc NewClientSet(cfg *rest.Config) (Interface, error) {\n c := &ClientSet{}\n var err error\n\n c.svcA, err = svca.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n c.svcB, err = svcb.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClientSet creates a new client set or panic if an error occurs.\nfunc MustNewClientSet(cfg *rest.Config) Interface {\n c, err := NewClientSet(cfg)\n if err != nil {\n panic(err)\n }\n return c\n}\n\n// SvcA returns a client for svc a.\nfunc (c *ClientSet) SvcA() svca.Interface {\n return c.svcA\n}\n\n// SvcB returns a client for svc b.\nfunc (c *ClientSet) SvcB() svcb.Interface {\n return c.svcB\n}\n\n使用 ClientSet\nClientSet 的使用方法和普通 Client 没有太大区别:\nfunc main() {\n cli := clientset.MustNewClientSet(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.SvcA().V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n"},"plugins/logger.html":{"url":"plugins/logger.html","title":"系统日志插件","keywords":"","body":"系统日志插件\n包路径: github.com/caicloud/nirvana/plugins/logger\n系统日志插件是一个伪插件。这个插件本身没有按照 Plugin Framework 编写,只是为了通过 config 包的 Command 暴露 Flag。\n这个插件暴露三个选项:\n// Option contains basic configurations of logger.\ntype Option struct {\n // Debug is logger level.\n Debug bool `desc:\"Debug mode. Output all logs\"`\n // Level is logger level.\n Level int32 `desc:\"Log level. This field is no sense if debug is enabled\"`\n // OverrideGlobal modifies nirvana global logger.\n OverrideGlobal bool `desc:\"Override global logger\"`\n}\n启用 Debug 模式后,Level 就无效。如果 OverrideGlobal 为 true,那么除了设置当前 Server 的 logger 以外,还会设置全局的 logger。\n"},"plugins/reqlog.html":{"url":"plugins/reqlog.html","title":"请求日志插件","keywords":"","body":"请求日志插件\n包路径: github.com/caicloud/nirvana/plugins/reqlog\n请求日志插件会添加一个在 / 上的中间件,用于打印所有路由匹配成功的请求的日志。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nDefault() nirvana.Configurer\n启用插件并使用默认配置\n\n\nLogger(l log.Logger) nirvana.Configurer\n设置 Logger\n\n\nDoubleLog(enable bool) nirvana.Configurer\n启用或关闭双重日志,即请求开始一条日志,请求结束一条日志\n\n\nSourceAddr(enable bool) nirvana.Configurer\n启用或关闭显示源地址\n\n\nRequestID(enable bool) nirvana.Configurer\n启用或关闭显示请求 ID \n\n\nRequestIDKey(key string) nirvana.Configurer\n设置请求 ID 的 key,默认为 X-Request-ID\n\n\n\n"},"plugins/metrics.html":{"url":"plugins/metrics.html","title":"监控指标插件","keywords":"","body":"监控指标插件\n包路径: github.com/caicloud/nirvana/plugins/metrics\n监控指标插件基于 Prometheus,提供了一个 API 用于暴露服务端指标。\n启用插件后,可以直接向 prometheus 包注册指标。采集端可以通过 /metrics 采集指标数据。\nAPI 路径 /metrics 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /metrics\n\n\nNamespace(ns string) nirvana.Configurer\n设置 Prometheus Namespace\n\n\n\n"},"plugins/tracing.html":{"url":"plugins/tracing.html","title":"请求追踪插件","keywords":"","body":"请求追踪插件\n包路径: github.com/caicloud/nirvana/plugins/tracing\n请求追踪插件基于 OpenTracing 接口实现了请求跟踪机制,会在 / 上添加一个中间件用于提取 Tracing 信息。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nCustomTracer(tracer opentracing.Tracer) nirvana.Configurer\n使用自定义的 Tracer\n\n\nDefaultTracer(serviceName string, agentHostPort string) nirvana.Configurer\n使用默认的 Tracer\n\n\nAddHook(hook Hook) nirvana.Configurer\n设置请求 Hook\n\n\n\nHook 接口:\n// Hook allows you to custom information for span.\ntype Hook interface {\n // Exec before request processing\n Before(ctx context.Context, span opentracing.Span)\n // Exec after request processing\n After(ctx context.Context, span opentracing.Span)\n}\n\n"},"plugins/profiling.html":{"url":"plugins/profiling.html","title":"性能分析插件","keywords":"","body":"性能分析插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n性能分析插件添加与 net/http/pprof 一致的 API,用于取得服务运行时信息。\n默认情况下,插件会添加四个 Descriptor:\n\n/debug/pprof\n/debug/pprof/profile\n/debug/pprof/symbol\n/debug/pprof/trace\n\n前缀路径 /debug/pprof 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置路径前缀,默认值为 /debug/pprof\n\n\n\n"},"plugins/version.html":{"url":"plugins/version.html","title":"版本信息插件","keywords":"","body":"版本信息插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n版本信息插件提供一个 API 返回服务的版本信息。API 路径默认为 /version。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /version\n\n\nName(name string) nirvana.Configurer\n设置服务名称\n\n\nVersion(version string) nirvana.Configurer\n设置服务版本号\n\n\nHash(hash string) nirvana.Configurer\n设置服务 hash 值。一般情况下可以设置为代码的 commit 值\n\n\nDescription(description string) nirvana.Configurer\n设置服务的描述\n\n\n\n"},"plugins/healthcheck.html":{"url":"plugins/healthcheck.html","title":"健康检查插件","keywords":"","body":"健康检查插件\n包路径: github.com/caicloud/nirvana/plugins/healthcheck\n健康检查插件提供一个 API 返回服务当前是否健康。API 默认路径为 /healthz。\n插件提供了一个函数接口:\ntype HealthChecker func(ctx context.Context) error\n如果服务正常,则 checker 应该返回 nil。如果服务异常,则返回相应的错误。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /healthz\n\n\nChecker(checker HealthChecker) nirvana.Configurer\n设置 Checker 用于检查服务是否正常。\n\n\n\n"},"topics/start.html":{"url":"topics/start.html","title":"准备工作","keywords":"","body":"准备工作\n开发工具介绍\n\ngolang:https://golang.org/dl/\ndep:https://github.com/golang/dep\ngometalinter:https://github.com/alecthomas/gometalinter\n\n一般情况下,我们使用最新版本的 golang 进行开发,但是需要保证两个 golang 大版本的兼容性。即使用 1.10.x 开发的情况下,需要保持对 1.9.x 的兼容性。\n另外 Nirvana 只使用 dep 进行依赖管理,不要使用其他依赖管理工具对 vendor 进行任何更新操作。并且所有的依赖需要放置在根目录的 vendor 中,不能在任何子目录下使用 vendor。\n除了常规的 go test 测试以外,还需要使用 gometalinter 进行代码检查,gometalinter 的配置文件在根目录的 config.json 中。\n工作流程\n在 githuh 上 Fork Nirvana 到自己的账户下,然后下载源码到本地开发目录中:\n$ cd $GOPATH/src\n$ mkdir -p github.com/caicloud/\n$ cd github.com/caicloud/\n$ git clone git@github.com:{your account}/nirvana.git\n在完成修改并提交到自己的 repo 之后,通过 github PR 的形式向 Nirvana 提交代码。\n框架设计概览\nNirvana 框架的设计核心思想是:隔离 API 定义和业务逻辑实现\n也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。\nNirvana 包之间的依赖关系:\n\n\n其中 log 与 errors 是基础包,分别负责日志基础接口和错误处理基础接口。\ndefinition 包包含 Nirvana 框架的 API 定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。\ndefinition/method 帮助用户把实例方法转换为 definition 函数。请参考 方法包。\noperators 中包含了两个组件功能实现了 converters 和 validators,用于 API 参数的类型转换和数据验证。\nservice/router 包实现了基于前缀树的路由和中间件功能。\nservice 包实现了框架 API 路由和处理的所有功能。\nnirvana 包实现了 API Server 以及插件化功能。\nplugins 中包含了许多实现了 nirvana 插件接口的插件。\nconfig 包实现了 Nirvana Command 功能,并提供了从 flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用 Nirvana 的入口包。\nutils 包包含多个工具用于 API 生成,客户端代码生成,项目结构生成。\ncmd/nirvana 是 Nirvana 的主要命令,利用 utils 包帮助用户快速构建项目。\n\n在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。\n"},"topics/log.html":{"url":"topics/log.html","title":"log","keywords":"","body":"log 包\nlog 包提供了一组基础的日志 API 和一个使用了 stderr 进行输出的标准实现。\n标准接口如下:\n// Level is log level of verboser. We strongly recommend you to\n// follow the rules:\n// 1. Use LevelDebug for debug log.\n// 2. Use 1 for important but not frequent log.\n// 3. Use 2 for important and frequent log.\n// 4. Use 3 for not important and not frequent log.\n// 5. Use 4 for not important but frequent log.\n// 6. Use [5, LevelDebug) only if you want to custom log levels.\ntype Level int32\n\nconst (\n // LevelDebug is for debug info.\n LevelDebug Level = math.MaxInt32\n)\n\n// Severity has four classes to correspond with log situation.\ntype Severity string\n\nconst (\n // SeverityInfo is for usual log.\n SeverityInfo Severity = \"INFO\"\n // SeverityWarning is for warning.\n SeverityWarning Severity = \"WARN\"\n // SeverityError is for error.\n SeverityError Severity = \"ERROR\"\n // SeverityFatal is for panic error. The severity means that\n // a logger will output the error and exit immediately.\n // It can't be recovered.\n SeverityFatal Severity = \"FATAL\"\n)\n\n// Verboser is an interface type that implements Info(f|ln) .\n// See the documentation of V for more information.\ntype Verboser interface {\n // Info logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Info(...interface{})\n // Infof logs to the INFO log.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Infof(string, ...interface{})\n // Infoln logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Infoln(...interface{})\n}\n\n// Logger provides a set of methods to output log.\ntype Logger interface {\n Verboser\n // V reports whether verbosity at the call site is at least the requested level.\n // The returned value is a Verboser, which implements Info, Infof\n // and Infoln. These methods will write to the Info log if called.\n V(Level) Verboser\n // Warning logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Warning(...interface{})\n // Warningf logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Warningf(string, ...interface{})\n // Warningln logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Warningln(...interface{})\n // Error logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Error(...interface{})\n // Errorf logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Errorf(string, ...interface{})\n // Errorln logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Errorln(...interface{})\n // Fatal logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Fatal(...interface{})\n // Fatalf logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Fatalf(string, ...interface{})\n // Fatalln logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Fatalln(...interface{})\n // Clone clones current logger with new wrapper.\n // A positive wrapper indicates how many wrappers outside the logger.\n // A negative wrapper indicates how many wrappers should be stripped.\n Clone(wrapper int) Logger\n}\n\n这套日志 API 参考了 glog 的 golang API,并且允许用户接入其他日志系统。\n在实现一个自定义的 logger 之前,需要知道以下几件事情:\n\nlog 包有一个默认的 logger,使用的是 StdLogger。可以通过 SetDefaultLogger() 变更。\n对于不需要输出日志的场景,使用 SilentLogger 的实例而不是 nil.\n正确实现 logger 的 Clone 方法。Clone 方法用于在对 logger 进行包装的时候,获取正确层级的调用栈信息。\n在 Fatal* 时候,使用 os.Exit(1) 进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。\n\n"},"topics/errors.html":{"url":"topics/errors.html","title":"errors","keywords":"","body":"errors 包\nerrors 包类似于标准库的 errors 包,但是提供了方法用于生成格式化的错误和错误判断。\nerrors 包中存在三个概念,分别是 Builder,Factory 和 Error。其中 Builder 用于构建 Factory,Factory 则用于构建特定的 Error。\nFactory 接口如下:\n// Factory can create error from a fixed format.\ntype Factory interface {\n // Error generates an error from v.\n Error(v ...interface{}) error\n // Derived checks if an error was derived from current factory.\n Derived(e error) bool\n}\n\nError 接口如下(这个接口并没有显式定义在 errors 包中):\ntype Error interface {\n error\n Code() int\n Message() interface{}\n}\n\n首先看 Facotry 的两个方法:\n\nError 用于传入参数输出一个真正的错误。\nDerived 则用于判断一个错误是否是由当前的 Factory 生成。\n这样就能够非常方便的错误创建和错误判断了。\n\nFactory 是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同 string format,比如 \"${user} is not found\")。\n通常情况下,有 Factory 和 Error 就足够了。但是为了让错误能够以 HTTP API 的形式向客户端返回,我们还需要给 Factory 加上一些附加属性,用来表示返回的错误码等信息。\n因此在 Factory 之上,构建了 Builder 接口,用于创建具有一类特征的 Factory(比如一类表示 NotFound 的错误)。\nBuilder 接口如下:\n// Builder can build error factories and errros.\ntype Builder interface {\n // Build builds a factory to generate errors with predefined format.\n Build(reason Reason, format string) Factory\n // Error immediately creates an error without reason.\n Error(format string, v ...interface{}) error\n}\n\nBuilder 可以构建带有 reason 和 format 的 Factory。也直接提供了 Error 方法用于直接创建出 Error。\n目前 errors 包提供的 Builder 主要是以 HTTP 状态码作为基础的:\n// These factory builders is used to build error factory.\nvar (\n BadRequest = newKind(400) // RFC 7231, 6.5.1\n Unauthorized = newKind(401) // RFC 7235, 3.1\n PaymentRequired = newKind(402) // RFC 7231, 6.5.2\n Forbidden = newKind(403) // RFC 7231, 6.5.3\n NotFound = newKind(404) // RFC 7231, 6.5.4\n MethodNotAllowed = newKind(405) // RFC 7231, 6.5.5\n NotAcceptable = newKind(406) // RFC 7231, 6.5.6\n ProxyAuthRequired = newKind(407) // RFC 7235, 3.2\n RequestTimeout = newKind(408) // RFC 7231, 6.5.7\n Conflict = newKind(409) // RFC 7231, 6.5.8\n Gone = newKind(410) // RFC 7231, 6.5.9\n LengthRequired = newKind(411) // RFC 7231, 6.5.10\n PreconditionFailed = newKind(412) // RFC 7232, 4.2\n RequestEntityTooLarge = newKind(413) // RFC 7231, 6.5.11\n RequestURITooLong = newKind(414) // RFC 7231, 6.5.12\n UnsupportedMediaType = newKind(415) // RFC 7231, 6.5.13\n RequestedRangeNotSatisfiable = newKind(416) // RFC 7233, 4.4\n ExpectationFailed = newKind(417) // RFC 7231, 6.5.14\n Teapot = newKind(418) // RFC 7168, 2.3.3\n UnprocessableEntity = newKind(422) // RFC 4918, 11.2\n Locked = newKind(423) // RFC 4918, 11.3\n FailedDependency = newKind(424) // RFC 4918, 11.4\n UpgradeRequired = newKind(426) // RFC 7231, 6.5.15\n PreconditionRequired = newKind(428) // RFC 6585, 3\n TooManyRequests = newKind(429) // RFC 6585, 4\n RequestHeaderFieldsTooLarge = newKind(431) // RFC 6585, 5\n UnavailableForLegalReasons = newKind(451) // RFC 7725, 3\n\n InternalServerError = newKind(500) // RFC 7231, 6.6.1\n NotImplemented = newKind(501) // RFC 7231, 6.6.2\n BadGateway = newKind(502) // RFC 7231, 6.6.3\n ServiceUnavailable = newKind(503) // RFC 7231, 6.6.4\n GatewayTimeout = newKind(504) // RFC 7231, 6.6.5\n HTTPVersionNotSupported = newKind(505) // RFC 7231, 6.6.6\n VariantAlsoNegotiates = newKind(506) // RFC 2295, 8.1\n InsufficientStorage = newKind(507) // RFC 4918, 11.5\n LoopDetected = newKind(508) // RFC 5842, 7.2\n NotExtended = newKind(510) // RFC 2774, 7\n NetworkAuthenticationRequired = newKind(511) // RFC 6585, 6\n)\n\n这个包方便了用户创建能够被 Nirvana 识别的错误,但是如果业务逻辑中如果不希望引入对 errors 包的依赖,可以自行实现错误包,只要产出的错误符合 Error 接口即可。\n"},"topics/definition.html":{"url":"topics/definition.html","title":"definition","keywords":"","body":"definition 包\ndefinition 包包含了 Nirvana 的 API 定义,用于描述 API 的参数与返回值。\n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n// Method is an alternative of HTTP method. It's more clearer than HTTP method.\n// A definition method binds a certain HTTP method and a success status code.\ntype Method string\n\nconst (\n // List binds to http.MethodGet and code http.StatusOK(200).\n List Method = \"List\"\n // Get binds to http.MethodGet and code http.StatusOK(200).\n Get Method = \"Get\"\n // Create binds to http.MethodPost and code http.StatusCreated(201).\n Create Method = \"Create\"\n // Update binds to http.MethodPut and code http.StatusOK(200).\n Update Method = \"Update\"\n // Patch binds to http.MethodPatch and code http.StatusOK(200).\n Patch Method = \"Patch\"\n // Delete binds to http.MethodDelete and code http.StatusNoContent(204).\n Delete Method = \"Delete\"\n // AsyncCreate binds to http.MethodPost and code http.StatusAccepted(202).\n AsyncCreate Method = \"AsyncCreate\"\n // AsyncUpdate binds to http.MethodPut and code http.StatusAccepted(202).\n AsyncUpdate Method = \"AsyncUpdate\"\n // AsyncPatch binds to http.MethodPatch and code http.StatusAccepted(202).\n AsyncPatch Method = \"AsyncPatch\"\n // AsyncDelete binds to http.MethodDelete and code http.StatusAccepted(202).\n AsyncDelete Method = \"AsyncDelete\"\n)\n\n// Source indicates which place a value is from.\ntype Source string\n\nconst (\n // Path means value is from URL path.\n Path Source = \"Path\"\n // Query means value is from URL query string.\n Query Source = \"Query\"\n // Header means value is from request header.\n Header Source = \"Header\"\n // Form means value is from request body and content type must be\n // \"application/x-www-form-urlencoded\" and \"multipart/form-data\".\n Form Source = \"Form\"\n // File means value is from request body and content type must be\n // \"multipart/form-data\".\n File Source = \"File\"\n // Body means value is from request body.\n Body Source = \"Body\"\n // Auto identifies a struct and generate field values by field tag.\n //\n // Tag name is \"source\". Its value format is \"Source,Name\".\n //\n // ex.\n // type Example struct {\n // Start int `source:\"Query,start\"`\n // ContentType string `source:\"Header,Content-Type\"`\n // }\n Auto Source = \"Auto\"\n // Prefab means value is from a prefab generator.\n // A prefab combines data to generate value.\n Prefab Source = \"Prefab\"\n)\n\n// Destination indicates the target type to place function results.\ntype Destination string\n\nconst (\n // Meta means result will be set into the header of response.\n Meta Destination = \"Meta\"\n // Data means result will be set into the body of response.\n Data Destination = \"Data\"\n // Error means the result is an error and should be treated specially.\n // An error occurs indicates that there is no data to return. So the\n // error should be treated as data and be writed back to client.\n Error Destination = \"Error\"\n)\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Instance is a custom data.\n Instance interface{}\n}\n\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Summary is a one-line brief description of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nDescriptor 结构体包含具有如下含义的字段:\n\nAPI 路径\n可被 Middlewares,Definitions,Children 继承的字段\n其他与 API 路径同等级别的字段\n\n如果希望对 Descriptor 进行扩展,需要遵守上面这些规则。\nDefinition 结构体包含了一个具体的 API 定义:\n\nAPI 方法,这个方法是一个抽象方法,用于描述一种行为(比如 Create)。\nAPI 参数和返回值定义\n其他与具体 API 同等级别的字段\n\n如果希望对 Definition 进行扩展,需要遵守上面这些规则。\nParameter 和 Result 分别对应 API 的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。\n在上面的定义中,存在两个额外功能:\n\n在 Descriptor 中提供了 Middleware\n在 Parameter 和 Result 中,提供了 Operator\n\n其中 Middleware 提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而 Operator 则针对单个的业务参数和返回值,可以对值进行验证和修改。\ndefinition 包除了包含对 API 的定义以外,还提供了一些函数,帮助快速构建 Definitions 和 Operators:\n// MIME types\nconst (\n // acceptTypeAll indicates a accept type from http request.\n // It means client can receive any content.\n // Request content type in header \"Content-Type\" must not set to \"*/*\".\n // It only can exist in request header \"Accept\".\n // In most time, it locate at the last element of \"Accept\".\n // It's default value if client have not set \"Accept\" header.\n MIMEAll = \"*/*\"\n MIMENone = \"\"\n MIMEText = \"text/plain\"\n MIMEJSON = \"application/json\"\n MIMEXML = \"application/xml\"\n MIMEOctetStream = \"application/octet-stream\"\n MIMEURLEncoded = \"application/x-www-form-urlencoded\"\n MIMEFormData = \"multipart/form-data\"\n)\n\n// OperatorFunc creates operator by function.\n// function must has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to identify field.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc OperatorFunc(kind string, f interface{}) Operator\n\n"},"topics/method.html":{"url":"topics/method.html","title":"definition/method","keywords":"","body":"method 包\n在 definition 包中,可以看到 Definition.Function 必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method 包提供了一个实例方法容器,帮助用户把实例方法转换为函数。\n容器如下:\n// Container contains instances and mappings.\ntype Container struct {\n ...\n}\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc (c *Container) Put(instance interface{})\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc (c *Container) PutInterface(iface interface{}, instance interface{})\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc (c *Container) Get(instance interface{}, method string) interface{}\n\n这个实例方法容器分离了方法的 Get 和 Put 过程。也就是可以在声明 API 时,使用 Get 获取某个实例的方法,之后再在服务启动逻辑里 Put 真正的实例,即 Get 可以在 Put 之前使用。\n这个主要是利用了 golang 的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。\nmethod 包还提供了一个全局的 Container:\nvar defaultContainer = NewContainer()\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc Put(instance interface{}) {\n defaultContainer.Put(instance)\n}\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc PutInterface(iface interface{}, instance interface{}) {\n defaultContainer.PutInterface(iface, instance)\n}\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc Get(instance interface{}, method string) interface{} {\n return defaultContainer.Get(instance, method)\n}\n\n一般情况下,用户会使用这个全局的容器。\n"},"topics/converter.html":{"url":"topics/converter.html","title":"operators/converter","keywords":"","body":"converter 包\nconverter 包提供了一个 Converter 实现,帮助用户快速构建名为 converter 的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `converter`.\nconst OperatorKind = \"converter\"\n\n// Converter describes a converter.\ntype Converter interface {\n definition.Operator\n}\n\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter {\n return definition.OperatorFunc(OperatorKind, f)\n}\n\n这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为 Operator。\n"},"topics/validator.html":{"url":"topics/validator.html","title":"operators/validator","keywords":"","body":"validator 包\nvalidator 包提供了一系列的方法帮助用户快速生成用于校验参数的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `validator`.\nconst OperatorKind = \"validator\"\n\n// Category distinguishs validation type based on different Validator implementation.\ntype Category string\n\nconst (\n // CategoryVar indicates that the validator can validate basic built-in types.\n // Types: string, int*, uint*, bool.\n CategoryVar Category = \"Var\"\n // CategoryStruct indicates that the validator can validate struct.\n CategoryStruct Category = \"Struct\"\n // CategoryCustom indicates the validator is a custom validator.\n CategoryCustom Category = \"Custom\"\n)\n\n// Validator describes an interface for all validator.\ntype Validator interface {\n definition.Operator\n // Category indicates validator type.\n Category() Category\n // Tag returns tag.\n Tag() string\n // Description returns description of current validator.\n Description() string\n}\n\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n// Struct returns an operator to validate a structs exposed fields, and automatically validates nested structs, unless otherwise specified\n// and also allows passing of context.Context for contextual validation information.\nfunc Struct(instance interface{}) Validator\n\n// String creates validator for string type.\nfunc String(tag string) Validator\n\n// Int creates validator for int type.\nfunc Int(tag string) Validator\n\n// Int64 creates validator for int64 type.\nfunc Int64(tag string) Validator\n\n// Int32 creates validator for int32 type.\nfunc Int32(tag string) Validator\n\n// Int16 creates validator for int16 type.\nfunc Int16(tag string) Validator\n\n// Int8 creates validator for int8 type.\nfunc Int8(tag string) Validator\n\n// Byte creates validator for byte type.\nfunc Byte(tag string) Validator\n\n// Uint creates validator for uint type.\nfunc Uint(tag string) Validator\n\n// Uint64 creates validator for uint64 type.\nfunc Uint64(tag string) Validator\n\n// Uint32 creates validator for uint32 type.\nfunc Uint32(tag string) Validator\n\n// Uint16 creates validator for uint16 type.\nfunc Uint16(tag string) Validator\n\n// Uint8 creates validator for uint8 type.\nfunc Uint8(tag string) Validator\n\n// Bool creates validator for bool type.\nfunc Bool(tag string) Validator\n\n目前支持三种类型的验证,分别对应 golang 基础类型,结构体类型和自定义类型。目前验证方法基于 gopkg.in/go-playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。\n"},"topics/router.html":{"url":"topics/router.html","title":"service/router","keywords":"","body":"router 包\nrouter 包实现了基于前缀树的路由,并提供了三种类型的路由节点:\n\n字符串类型节点\n正则类型节点(包括一个全匹配类型节点)\n剩余路径类型节点\n\n字符串类型节点:\n// stringNode describes a string router node.\ntype stringNode struct {\n handler\n children\n // prefix is the fixed string to match path.\n prefix string\n}\n\n字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与 prefix 完全匹配。\n正则类型节点:\n// index contains the key and it's index of the submatches.\ntype index struct {\n // Key is the name for the value.\n Key string\n // Pos is the index of value in submatches.\n Pos int\n}\n\n// regexpNode contains information for matching a regexp segment.\ntype regexpNode struct {\n handler\n children\n // indices contains all positions to get values from submatches.\n indices []index\n // exp is the regular expression.\n exp string\n // regexp is a regexp instance to match.\n regexp *regexp.Regexp\n}\n\n正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。\n全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的 .*:\n// fullMatchRegexpNode is an optimizing of RegexpNode.\ntype fullMatchRegexpNode struct {\n handler\n children\n // key is the name for the only value.\n key string\n}\n\n这是对正则表达式的一个常用特例的优化,快速进行全匹配。\n正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个 / 之前。\n剩余路径类型节点:\n// pathNode matches all rest path.\ntype pathNode struct {\n handler\n // key is the key for the rest path.\n key string\n}\n\n这个节点匹配剩余所有路径。\n下面用一个例子来说明这几个节点:\nAPI Path: /apis/v1/{regexp:[a-z]{1,2}}/{fullmatch}/{path:*}\nMatched Path: /apis/v1/ab/something/the/rest/path\nGenerated Nodes:\n String Node: /apis/v1/ -> /apis/v1/\n Regexp Node: regexp:[a-z]{1,2} -> ab\n String Node: / -> /\n Full Match Node: fullmatch:.* -> something\n String Node: / -> /\n Path Node: * -> the/rest/path\n\n一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。\n在上面的路径节点中,每个节点都可以绑定一个 Inspector:\n// Inspector can select an executor to execute.\ntype Inspector interface {\n // Inspect finds a valid executor to execute target context.\n // It returns an error if it can't find a valid executor.\n Inspect(context.Context) (Executor, error)\n}\n\n// Executor executs with a context.\ntype Executor interface {\n // Execute executes with context.\n Execute(context.Context) error\n}\n\n路径匹配完成后,会调用匹配链的最后一个节点的 Inspector 来生成一个能够处理当前的路由上下文的 Executor。Inspector 如果能返回一个 Executor,router 会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个 Executor。如果不能返回 Executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。\n中间件接口如下:\n// RoutingChain contains the call chain of middlewares and executor.\ntype RoutingChain interface {\n // Continue continues to execute the next middleware or executor.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call RoutingChain.Continue() and pass the context.\ntype Middleware func(context.Context, RoutingChain) error\n\n对于中间件而言,处理完当前的任务之后只需要调用 RoutingChain 将 Context 通过 Continue 传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用 Continue 实际上是调用的 Executor,因此所有中间件的 Continue 执行完成之后,请求也处理完成了。\n注:这个包里所有的接口都不会被用户直接使用,用户只能通过 definition 包进行 API 定义,然后由 service 包进行路由构建和匹配。\n"},"topics/service.html":{"url":"topics/service.html","title":"service","keywords":"","body":"service 包\nservice 包实现了 Nirvana 的 API 处理框架:\n Service.ServeHTTP()\n ----------------------\n ↓ ↑\n|-----Filters------| ↑\n ↓ ↑\n|---Router Match---| ↑\n ↓ ↑\n|-------------Middlewares------------|\n ↓ ↑\n|-------------Executor---------------|\n ↓ ↑\n|-ParameterGenerators-|-DestinationHandlers-|\n ↓ ↑\n|------------User Function-----------|\nservice 包的入口是 Builder:\n// Builder builds service.\ntype Builder interface {\n // Logger returns logger of builder.\n Logger() log.Logger\n // SetLogger sets logger to server.\n SetLogger(logger log.Logger)\n // Modifier returns modifier of builder.\n Modifier() DefinitionModifier\n // SetModifier sets definition modifier.\n SetModifier(m DefinitionModifier)\n // Filters returns all request filters.\n Filters() []Filter\n // AddFilters add filters to filter requests.\n AddFilter(filters ...Filter)\n // AddDescriptors adds descriptors to router.\n AddDescriptor(descriptors ...definition.Descriptor) error\n // Middlewares returns all router middlewares.\n Middlewares() map[string][]definition.Middleware\n // Definitions returns all definitions. If a modifier exists, it will be executed.\n Definitions() map[string][]definition.Definition\n // Build builds a service to handle request.\n Build() (Service, error)\n}\n\ntype Service interface {\n http.Handler\n}\n\n// DefinitionModifier is used in Server. It's used to modify definition.\n// If you want to add some common data into all definitions, you can write\n// a customized modifier for it.\ntype DefinitionModifier func(d *definition.Definition)\n\n\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nBuilder 构建 Service 来提供 HTTP 服务。因此 Builder 提供了多个方法用于设置生成服务需要的日志,Definition 修改器,请求过滤器,API 描述符。构建完成的 Service 实际上是一个 http.Handler,用来处理请求。\n其中 Definition 修改器用于在生成路由之前修改 API Definition。请求过滤器则是在 Service 执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。\nBuilder 还会将 API Definition 转换为路由需要的数据结构,涉及到以下内容:\n\n对应 Consumes 和 Produces 的 Consumer 和 ProducerConsumer 针对请求的 body,将数据转换为业务函数需要的数据类型(通常是结构体)。Producer 则是将业务函数的返回值转换并写入到响应的 body 中。 \n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n\n对应 Prefab 类型的 Prefab 生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。service 包里提供了一个 Context Prefab 生成器,简单的将参数里的 context 返回出去,供业务函数使用。// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n\n对应 golang 基础类型的转换器这些转换器一般是用于将请求里的 query,header 等简单字符串数据转换为 golang 的基础类型,供业务函数使用。// Converter is used to convert []string to specific type. Data must have one\n// element at least or it will panic.\ntype Converter func(ctx context.Context, data []string) (interface{}, error)\n\n\n用于封装请求的 ValueContainer这个接口是对 Request 的一次封装,方便获取对应位置的字符串数据。// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n\n用于封装响应的 ResponseWriterResponseWriter 是对 http.ResponseWriter 的一个扩展,提供了一些功能方便中间件使用。// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n\n用于合并请求和响应的 ContextHTTPContext 实现了 Context 接口,包装了请求的信息。作为路由上下文使用。// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\n\n用于生成业务函数的参数的 ParameterGeneratorParameterGenerator 是真正的参数生成器,通过调用 Consumer,Converter,Prefab 等来完成业务函数的参数生成。// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n\n用于将业务函数返回值写入 Response 的 DestinationHandlerDestinationHandler 是业务函数返回值处理器,通过调用 Producer 将返回值转换为字节写入响应中。在 DestinationHandler 中,错误是会进行特殊处理的。如果业务函数返回的错误符合 Error 接口,则会根据这个接口来生成错误码和返回数据结构。\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nconst (\n // HighPriority for error type.\n // If an error occurs, ignore meta and data.\n HighPriority int = 100\n // MediumPriority for meta type.\n MediumPriority int = 200\n // LowPriority for data type.\n LowPriority int = 300\n)\n\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n\n\n注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。\n"},"topics/nirvana.html":{"url":"topics/nirvana.html","title":"nirvana","keywords":"","body":"nirvana 包\nnirvana 包在根目录中,实现了 Nirvana Server 和插件系统。这个包放置在根目录中是因为这个包是 Nirvana 提供的用于生成 API Server 的顶级包,而且其依赖的所有包只来自 Nirvana 自身和标准库(config 包依赖了 nirvana 包和其他第三方的包,实际上是一个借助了 Nirvana 和第三方功能的扩展)。\nServer 接口如下:\n// Server is a complete API server.\n// The server contains a router to handle all requests form clients.\ntype Server interface {\n // Serve starts to listen and serve requests.\n // The method won't return except an error occurs.\n Serve() error\n // Shutdown gracefully shuts down the server without interrupting any\n // active connections.\n Shutdown(ctx context.Context) error\n // Builder create a service builder for current server. Don't use this method directly except\n // there is a special server to hold http services. After server shutdown, clean resources via\n // returned cleaner.\n // This method always returns same builder until cleaner is called. Then it will\n // returns new one.\n Builder() (builder service.Builder, cleaner func() error, err error)\n}\n\n创建 Server 需要使用 Config:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Locked checks if the config is locked.\nfunc (c *Config) Locked() bool\n\n// IP returns listenning ip.\nfunc (c *Config) IP() string\n\n// Port returns listenning port.\nfunc (c *Config) Port() uint16\n\n// Logger returns logger.\nfunc (c *Config) Logger() log.Logger\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config\n\n// Config gets external config by name. This method is for plugins.\nfunc (c *Config) Config(name string) interface{}\n\n// Set sets external config by name. This method is for plugins.\n// Set a nil config will delete it.\nfunc (c *Config) Set(name string, config interface{})\n\n// NewServer creates a nirvana server. After creation, don't modify\n// config. Also don't create another server with current config.\nfunc NewServer(c *Config) Server\n\n在 Config 中,存在一些 Server 级别的配置,这些配置是针对当前服务的。而对应的 Configurer 也在当前包中。如果需要对配置进行扩展,增强 Server 功能,则可以增加相应字段,否则应该使用插件机制增加功能。\n在 Config 中可以看到 Config 和 Set 方法,这两个方法就是提供给插件允许插件设置自身的配置的。\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的 Install 方法安装插件。\n"},"topics/config.html":{"url":"topics/config.html","title":"config","keywords":"","body":"config 包\nconfig 包利用 github.com/spf13/cobra 和 github.com/spf13/viper 实现了 Nirvana Command 和配置读取,为 Nirvana 服务启动提供了命令行支持。\nNirvanaCommand 接口如下:\n// NirvanaCommand is a nirvana command.\ntype NirvanaCommand interface {\n // EnablePlugin enables plugins.\n EnablePlugin(plugins ...Plugin) NirvanaCommand\n // AddOption will fill up options from flags/ENV/config after executing.\n // A non-empty prefix is recommended. It's used to divide option namespaces.\n AddOption(prefix string, options ...CustomOption) NirvanaCommand\n // Add adds a field by key.\n // If you don't have any struct to describe an option, you can use the method to\n // add a single field into nirvana command.\n // `pointer` must be a pointer to golang basic data type (e.g. *int, *string).\n // `key` must a config key. It's like 'nirvana.ip' and 'myconfig.name.firstName'.\n // The key will be converted to flag and env (e.g. --nirvana-ip and NIRVANA_IP).\n // If you want a short flag for the field, you can only set a one-char string.\n // `desc` describes the field.\n Add(pointer interface{}, key string, shortFlag string, desc string) NirvanaCommand\n // Execute runs nirvana server.\n Execute(descriptors ...definition.Descriptor) error\n // ExecuteWithConfig runs nirvana server from a custom config.\n ExecuteWithConfig(cfg *nirvana.Config) error\n // Command returns a command for command.\n Command(cfg *nirvana.Config) *cobra.Command\n // SetHook sets nirvana command hook.\n SetHook(hook NirvanaCommandHook)\n // Hook returns nirvana command hook.\n Hook() NirvanaCommandHook\n}\n\nNirvanaCommand 扩展了 nirvana 包的插件能力:\n// CustomOption must be a pointer to struct.\n//\n// Here is an example:\n// type Option struct {\n// FirstName string `desc:\"Desc for First Name\"`\n// Age uint16 `desc:\"Desc for Age\"`\n// }\n// The struct has two fields (with prefix example):\n// Field Flag ENV Key (In config file)\n// FirstName --example-first-name EXAMPLE_FIRST_NAME example.firstName\n// Age --example-age EXAMPLE_AGE example.age\n// When you execute command with `--help`, you can see the help doc of flags and\n// descriptions (From field tag `desc`).\n//\n// The priority is:\n// Flag > ENV > Key > The value you set in option\ntype CustomOption interface{}\n\n// Plugin is for plugins to collect configurations\ntype Plugin interface {\n // Name returns plugin name.\n Name() string\n // Configure configures nirvana config via current options.\n Configure(cfg *nirvana.Config) error\n}\nNirvana Command 要求每个插件提供一个 Option,并且实现 Plugin 接口。用户在 Comamnd 中传递 Option 来启用插件,并且将插件 Option 中的公开字段根据一定的规则(规则参考上面的注释)从 flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。\n由于 Nirvana Config 服务配置的特殊性,config 包提供了一个 Option 来表达这些配置:\n// Option contains basic configurations of nirvana.\ntype Option struct {\n // IP is the IP to listen.\n IP string `desc:\"Nirvana server listening IP\"`\n // Port is the port to listen.\n Port uint16 `desc:\"Nirvana server listening Port\"`\n // Key is private key for HTTPS.\n Key string `desc:\"TLS private key (PEM format) for HTTPS\"`\n // Cert is certificate for HTTPS.\n Cert string `desc:\"TLS certificate (PEM format) for HTTPS\"`\n}\n\n除了插件 Option 以外,config 包会从以下文件列表中读取配置文件:\n目录:\n ./\n ./config/\n {ExecutableFilePath}/\n {ExecutableFilePath}/config/\n /etc/nirvana/\n\n配置文件名:\n nirvana.yaml\n nirvana.toml\n nirvana.json\n如果读取到配置文件,那么除了使用 Option 接收配置以外,还可以通过一些帮助方法获取配置:\n// IsSet checks to see if the key has been set in any of the data locations.\n// IsSet is case-insensitive for a key\nfunc IsSet(key string) bool\n\n// Set sets the value for the key in the override regiser.\n// Set is case-insensitive for a key.\n// Will be used instead of values obtained via\n// flags, config file, ENV, default, or key/value store.\nfunc Set(key string, value interface{})\n\n// Get can retrieve any value given the key to use.\n// Get is case-insensitive for a key.\n// Get has the behavior of returning the value associated with the first\n// place from where it is set. Viper will check in the following order:\n// override, flag, env, config file, key/value store, default\n//\n// Get returns an interface. For a specific value use one of the Get____ methods.\nfunc Get(key string) interface{}\n\n// GetBool returns the value associated with the key as a bool.\nfunc GetBool(key string) bool\n\n// GetDuration returns the value associated with the key as a time.Duration.\nfunc GetDuration(key string) time.Duration\n\n// GetFloat32 returns the value associated with the key as a float32.\nfunc GetFloat32(key string) float32\n\n// GetFloat64 returns the value associated with the key as a float64.\nfunc GetFloat64(key string) float64\n\n// GetInt returns the value associated with the key as a int.\nfunc GetInt(key string) int\n\n// GetInt8 returns the value associated with the key as a int.\nfunc GetInt8(key string) int8\n\n// GetInt16 returns the value associated with the key as a int.\nfunc GetInt16(key string) int16\n\n// GetInt32 returns the value associated with the key as a int32.\nfunc GetInt32(key string) int32\n\n// GetInt64 returns the value associated with the key as a int64.\nfunc GetInt64(key string) int64\n\n// GetString returns the value associated with the key as a string.\nfunc GetString(key string) string\n\n// GetStringSlice returns the value associated with the key as a []string.\nfunc GetStringSlice(key string) []string\n\n// GetUint returns the value associated with the key as a uint.\nfunc GetUint(key string) uint\n\n// GetUint8 returns the value associated with the key as a uint.\nfunc GetUint8(key string) uint8\n\n// GetUint16 returns the value associated with the key as a uint.\nfunc GetUint16(key string) uint16\n\n// GetUint32 returns the value associated with the key as a uint32.\nfunc GetUint32(key string) uint32\n\n// GetUint64 returns the value associated with the key as a uint64.\nfunc GetUint64(key string) uint64\n\n注:如果在 nirvana 包中对 Config 进行了扩展,涉及到字段的改变,也需要在这个包中修改 Option 和相应的功能。\n"},"topics/rest.html":{"url":"topics/rest.html","title":"rest","keywords":"","body":"rest 包\nrest 包提供了一个简单的 REST Client 用于访问 API 服务。\n在这个包中,主要包含三个概念:Config,Client 和 Request。Config 是 Client 的配置,用于创建 Client。而 Request 则由 Client 创建,用来表示每一个 REST 请求。\n// RequestExecutor implements a http client.\ntype RequestExecutor interface {\n Do(req *http.Request) (*http.Response, error)\n}\n\n// Config is rest client config.\ntype Config struct {\n // Scheme is http scheme. It can be \"http\" or \"https\".\n Scheme string\n // Host must be a host string, a host:port or a URL to a server.\n Host string\n // Executor is used to execute http requests.\n // If it is empty, http.DefaultClient is used.\n Executor RequestExecutor\n}\n\n// Client implements builder pattern for http client.\ntype Client struct {\n ...\n}\n\n// NewClient creates a client.\nfunc NewClient(cfg *Config) (*Client, error)\n\n// Request creates an request with specific method and url path.\n// The code is only for checking if status code of response is right.\nfunc (c *Client) Request(method string, code int, url string) *Request\n\n// Request describes a http request.\ntype Request struct {\n ...\n}\n\n// Path sets path parameter.\nfunc (r *Request) Path(name string, value interface{}) *Request\n\n// Query sets query parameter.\nfunc (r *Request) Query(name string, values ...interface{}) *Request\n\n// Header sets header parameter.\nfunc (r *Request) Header(name string, values ...interface{}) *Request\n\n// Form sets form parameter.\nfunc (r *Request) Form(name string, values ...interface{}) *Request\n\n// File sets file parameter.\nfunc (r *Request) File(name string, file interface{}) *Request\n\n// Body sets body parameter.\nfunc (r *Request) Body(contentType string, value interface{}) *Request\n\n// Meta sets header result.\nfunc (r *Request) Meta(value *map[string]string) *Request\n\n// Data sets body result. value must be a pointer.\nfunc (r *Request) Data(value interface{}) *Request\n\n// Do executes the request.\nfunc (r *Request) Do(ctx context.Context) error\n\nRequest 保存了一个请求的数据,用 Path,Query,Header,Form,File,Body 来设置请求的相关值,Meta 和 Data 来设置用于接收响应的值(都是指针)。然后 Do 用于真正发起请求,并完成 Meta 和 Data 的填充。\nRequest 的方法与 API Definition 的除了 Prefab 和 Error 之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于 Prefab 是由服务端生成而不由客户端提交,Error 由 Do 方法返回,因此这两种类型没有对应的方法。\n注:这个 Client 会被由命令 nirvana client 生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。 \n"},"topics/utils.html":{"url":"topics/utils.html","title":"utils","keywords":"","body":"utils 系列包\nutils 系列包包含:\n\napi 包,用于读取项目源码,并生成与 API 有关的所有数据结构,产出的结构可用于生成文档和客户端。\nbuilder 包,利用 api 包读取源码并生成 API 数据。\ngenerators/golang 包,利用 api 包提供的数据结构生成 golang 客户端。\ngenerators/swagger 包,利用 api 包提供的数据结构生成 API 文档。\ngenerators/utils 包,提供公共工具给其他生成器使用。\nprinter 包,提供了一个在 Terminal 中打印表格的功能。\nproject 包,提供了基础工具用于读取项目配置文件,通常是 nirvana.yaml。\n\n除了 printer 包以外,其他包都是用于生成文档和客户端用的。\n在 api 包中,提供了如下功能:\n\n对应 golang type 的 Type为了能让 golang type 能转换为可读的数据结构,构建了 Type 相关类型:\n// TypeName is unique name for go types.\ntype TypeName string\n\n// TypeNameInvalid indicates an invalid type name.\nconst TypeNameInvalid = \"\"\n\n// StructField describes a field of a struct.\ntype StructField struct {\n // Name is the field name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package path that qualifies a lower case (unexported)\n // field name. It is empty for upper case (exported) field names.\n PkgPath string\n // Type is field type name.\n Type TypeName\n // Tag is field tag.\n Tag reflect.StructTag\n // Offset within struct, in bytes.\n Offset uintptr\n // Index sequence for Type.FieldByIndex.\n Index []int\n // Anonymous shows whether the field is an embedded field.\n Anonymous bool\n}\n\n// FuncField describes a field of function.\ntype FuncField struct {\n // Name is the field name.\n Name string\n // Type is field type name.\n Type TypeName\n}\n\n// Type describes an go type.\ntype Type struct {\n // Name is short type name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package for this type.\n PkgPath string\n // Kind is type kind.\n Kind reflect.Kind\n // Key is map key type. Only used in map.\n Key TypeName\n // Elem is the element type of map, slice, array, pointer.\n Elem TypeName\n // Fields contains all struct fields of a struct.\n Fields []StructField\n // In presents fields of function input parameters.\n In []FuncField\n // Out presents fields of function output results.\n Out []FuncField\n // Conflict identifies the index of current type in a list of\n // types which have same type names. In most cases, this field is 0.\n Conflict int\n}\n\n\n对应 Nirvana API 的 Definition此处的 Definition 大部分字段与 definition 包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source definition.Source\n // Name is the name to get value from a request.\n Name string\n // Description describes the parameter.\n Description string\n // Type is parameter object type.\n Type TypeName\n // Default is encoded default value.\n Default []byte\n}\n\n// Result describes a function result.\ntype Result struct {\n // Destination is the target for the result.\n Destination definition.Destination\n // Description describes the result.\n Description string\n // Type is result object type.\n Type TypeName\n}\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Type is result object type.\n Type TypeName\n // Instance is encoded instance data.\n Instance []byte\n}\n\n// Definition is complete version of def.Definition.\ntype Definition struct {\n // Method is definition method.\n Method definition.Method\n // HTTPMethod is http method.\n HTTPMethod string\n // HTTPCode is http success code.\n HTTPCode int\n // Summary is a brief of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function TypeName\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n\n用于表示代码注释的 Comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是 +nirvana:api=option:\"value\"。\nconst (\n // CommentsOptionDescriptors is the option name of descriptors.\n CommentsOptionDescriptors = \"descriptors\"\n // CommentsOptionModifiers is the option name of modifiers.\n CommentsOptionModifiers = \"modifiers\"\n // CommentsOptionAlias is the option name of alias.\n CommentsOptionAlias = \"alias\"\n // CommentsOptionOrigin is the option name of original name.\n CommentsOptionOrigin = \"origin\"\n)\n\n// Comments is parsed from go comments.\ntype Comments struct {\n lines []string\n options map[string][]string\n}\n\nvar optionsRegexp = regexp.MustCompile(`^[ \\t]*\\+nirvana:api[ \\t]*=(.*)$`)\nvar options = []string{CommentsOptionDescriptors, CommentsOptionModifiers, CommentsOptionAlias}\n\n// ParseComments parses comments and extracts nirvana options.\nfunc ParseComments(comments string) *Comments\n\n\n用于分析源码的 AnalyzerAnalyzer 可以读取源码,获取结构对象和注释信息。\n// Analyzer analyzes go packages.\ntype Analyzer struct {\n ...\n}\n\n// NewAnalyzer creates a code ananlyzer.\nfunc NewAnalyzer(root string) *Analyzer\n\n// Import imports a package and all packages it depends on.\nfunc (a *Analyzer) Import(path string) (*types.Package, error)\n\n// PackageComments returns comments above package keyword.\n// Import package before calling this method.\nfunc (a *Analyzer) PackageComments(path string) []*ast.CommentGroup\n\n// Packages returns packages under specified directory (including itself).\n// Import package before calling this method.\nfunc (a *Analyzer) Packages(parent string, vendor bool) []string\n\n// FindPackages returns packages which contain target.\n// Import package before calling this method.\nfunc (a *Analyzer) FindPackages(target string) []string\n\n// Comments returns immediate comments above pos.\n// Import package before calling this method.\nfunc (a *Analyzer) Comments(pos token.Pos) *ast.CommentGroup\n\n// ObjectOf returns declaration object of target.\nfunc (a *Analyzer) ObjectOf(pkg, name string) (types.Object, error)\n\n\n集合上述所有功能的 ContainerContainer 读取源码并进行分析,产出 API 相关的所有定义和类型信息。API 定义和类型信息可以用来生成 API 文档和客户端。\n// Definitions describes all APIs and its related object types.\ntype Definitions struct {\n // Definitions holds mappings between path and API descriptions.\n Definitions map[string][]Definition\n // Types contains all types used by definitions.\n Types map[TypeName]*Type\n}\n\n// Container contains informations to generate APIs.\ntype Container struct {\n ...\n}\n\n// NewContainer creates API container.\nfunc NewContainer(root string) *Container\n\n// AddModifier add definition modifiers to container.\nfunc (ac *Container) AddModifier(modifiers ...service.DefinitionModifier)\n\n// AddDescriptor add descriptors to container.\nfunc (ac *Container) AddDescriptor(descriptors ...definition.Descriptor)\n\n// Generate generates API definitions.\nfunc (ac *Container) Generate() (*Definitions, error)\n\n\n\nbuilder 包相对 api 包来说就简单很多了,这个包里包含一个 API Builder:\n// APIBuilder builds api definitions by specified package.\ntype APIBuilder struct {\n ...\n}\n\n// NewAPIBuilder creates an api builder.\nfunc NewAPIBuilder(root string, paths ...string) *APIBuilder\n\n// Build build api definitions.\nfunc (b *APIBuilder) Build() (*api.Definitions, error)\n\nAPI Builder 首先会利用 Analyzer 去读取指定路径的源码,然后从中找到标记了 modifiers 和 descriptors 选项的注释。两个选项的值对应两个函数,分别返回 Modifier 和 Descriptor。然后动态生成一个 main.go 文件 import 这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用 api 包的 Container 来生成 API 定义和类型信息。API Builder 执行 main.go 后通过 stdout 取得返回值,反序列化成 Definitions 结构,然后再返回给 API Builder 的调用者。这样就完成了对一个项目的 API 信息的提取。\ngolang 包和 swagger 包实际上都是利用了 API Builder 的返回结果,构建出相应的客户端和文档。golang 包会为每一个 API 生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了 rest 包 Client 接口。swagger 包则是利用了 github.com/go-openapi/spec 将 API 定义和类型转换成了 openapi 的定义。\n"},"topics/command.html":{"url":"topics/command.html","title":"cmd/nirvana","keywords":"","body":"nirvana 命令\nNirvana 命令对应的包在 cmd/nirvana 中,目前包括三个命令:\n\ninit,用于初始化标准项目目录结构和必要文件\napi,用于生成 API 文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)\nclient,用于生成 API 对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。\n\n每个命令都是一个目录,互相之间不干扰。每个目录都有一个 init.go 的文件用于把当前的命令加入到 Nirvana 根命令中,比如:\npackage project\n\nimport \"github.com/spf13/cobra\"\n\n// Register registers all commands.\nfunc Register(root *cobra.Command) {\n root.AddCommand(newInitCommand())\n}\n\n然后在 main.go 中 import 这个包并进行命令注册:\nimport (\n \"github.com/caicloud/nirvana/cmd/nirvana/api\"\n \"github.com/caicloud/nirvana/cmd/nirvana/client\"\n \"github.com/caicloud/nirvana/cmd/nirvana/project\"\n \"github.com/caicloud/nirvana/log\"\n \"github.com/spf13/cobra\"\n)\n\nvar root = &cobra.Command{\n Use: \"nirvana\",\n Short: \"Nirvana toolchains\",\n}\n\nfunc main() {\n project.Register(root)\n api.Register(root)\n client.Register(root)\n if err := root.Execute(); err != nil {\n log.Fatalln(err)\n }\n}\n\n接下来以 init 命令为例,说明单个命令的基本结构:\nfunc newInitCommand() *cobra.Command {\n options := &initOptions{}\n cmd := &cobra.Command{\n Use: \"init /path/to/project\",\n Short: \"Create a basic project structure\",\n Long: options.Manuals(),\n Run: func(cmd *cobra.Command, args []string) {\n if err := options.Validate(cmd, args); err != nil {\n log.Fatalln(err)\n }\n if err := options.Run(cmd, args); err != nil {\n log.Fatalln(err)\n }\n },\n }\n options.Install(cmd.PersistentFlags())\n return cmd\n}\n\ntype initOptions struct {\n Boilerplate string\n Version string\n Registries []string\n ImagePrefix string\n ImageSuffix string\n BuildImage string\n RuntimeImage string\n}\n\nfunc (o *initOptions) Install(flags *pflag.FlagSet) {\n flags.StringVar(&o.Boilerplate, \"boilerplate\", \"\", \"Path to boilerplate\")\n flags.StringVar(&o.Version, \"version\", \"v0.1.0\", \"First version of the project\")\n flags.StringSliceVar(&o.Registries, \"registries\", []string{}, \"Docker image registries\")\n flags.StringVar(&o.ImagePrefix, \"image-prefix\", \"\", \"Docker image prefix\")\n flags.StringVar(&o.ImageSuffix, \"image-suffix\", \"\", \"Docker image suffix\")\n flags.StringVar(&o.BuildImage, \"build-image\", \"golang:latest\", \"Golang image for building the project\")\n flags.StringVar(&o.RuntimeImage, \"runtime-image\", \"debian:jessie\", \"Docker base image for running the project\")\n}\n\nfunc (o *initOptions) Validate(cmd *cobra.Command, args []string) error\n\nfunc (o *initOptions) Run(cmd *cobra.Command, args []string) error\n\n基本结构如下:\n\n一个创建命令的私有函数 newInitCommand\n一个表示当前命令的所有参数的 initOptions\nOptions 实现的 Install 方法用于安装 flag 到命令中\nOptions 实现的 Validate 方法用于验证参数是否正确\nOptions 实现的 Run 方法真正执行命令对应的逻辑\n\n\n\n如果需要新增命令扩展 Nirvana 的功能,需要按照上述结构进行开发。\n"},"topics/routes.html":{"url":"topics/routes.html","title":"Routes","keywords":"","body":"Routes\nDefinitions\nDefining routes and be as easy as defining such functions:\nfunc handler(request Request) (Response, error) {\n // do stuff\n // return data\n // or error if anything wrong happened\n}\n\nHowever we can do a lot more with Nirvana framework!\nDeclarative approach to routes definition\nIn Nirvana, routes definitions are documentations, i.e. you will only need to follow the DRY rule, define your routes (w.r.t specific formats) and then we'll try to cover these for you:\n\nbasic test-case generation\nOpenAPI docs generation\nparameter checking (against function signatures)\netc.\n\ndefinition.Descriptor struct\nThis is the core data structure that you'll use, and a typical example looks like this:\ndefinition.Descriptor{\n Path: \"/api\",\n Description: \"here goes your api description\",\n Produces: []string{\"text/plain\"},\n Definitions: []definition.Definition{\n {\n Method: definition.Get,\n Function: func(ctx context.Context) (string, error) {\n return \"Hello World!\", nil\n },\n Parameters: []definition.Parameter{},\n Results: []definition.Result{\n {\n Type: definition.Data,\n },\n {\n Type: definition.Error,\n },\n },\n },\n },\n}\n\nTODO: add more\n"},"topics/cli.html":{"url":"topics/cli.html","title":"CLI","keywords":"","body":"CLI\nCLI, or command-line interface is where you put the switches or entrances to your application's different functionalities. You can always adopt a micro-service approach and follow UNIX philosophy to build dedicated application for specific use-case, as you should always do. However you'll still need some good and consistent way to expose different options for people / system that run your application. Therefore it is very good practice to follow good convention and make your CLI unambiguous and first class API as well.\nIn Nirvana, we didn't build CLI framework from scratch and instead adopt Cobra as a default baseline, with some small addition just to boost your experience.\nTODO: more details to follow\n"},"topics/validation.html":{"url":"topics/validation.html","title":"Validation","keywords":"","body":"Validation\nNow you are tired of echoing non-sense testing message and want to only reply message longer than 10 characters, such\nvalidation can be easily added when defining your descriptor:\nParameters: []definition.Parameter{\n {\n Source: definition.Query,\n Name: \"msg\",\n Description: \"Corresponding to the second parameter\",\n Operators: []definition.Operator{validator.String(\"gt=10\")},\n },\n},\n\nOperator is a concept in Nirvana to allow framework user to operate on input request; validation is one of several\npre-defined operators. Another example of operator is convertor, which allows user to convert between different\nversions of an input.\nUnder the hood, Nirvana uses go-playground/validator.v9 for validation,\nwhich defines a list of useful tags. It also supports custom validation. Nirvana integrates smoothly with the package,\nsee user guide for more advanced usage.\nNow run our new echo server and verify validation works:\n$ go run ./examples/getting-started/validator/echo.go\nINFO 0202-11:18:50.235+08 echo.go:67 | Listening on :8080\nINFO 0202-11:18:50.235+08 builder.go:163 | Definitions: 1 Middlewares: 0 Path: /echo\nINFO 0202-11:18:50.235+08 builder.go:178 | Method: Get Consumes: [*/*] Produces: [text/plain]\nIn another terminal:\n$ curl \"http://localhost:8080/echo?msg=test\"\nKey: '' Error:Field validation for '' failed on the 'gt' tag\n\n$ curl \"http://localhost:8080/echo?msg=testtesttest\"\ntesttesttest\nIt works! The above example teaches us two facts:\n\nAdding validation support with Nirvana is very simple\n10 characters validation is not enough to prevent spam :) (checkout guide below to add your own validation)\n\nFor full example code, see validator.\n"},"topics/openapi.html":{"url":"topics/openapi.html","title":"Open API","keywords":"","body":"OpenAPI\nYou've upgraded your service to provide a new endpoint to create an echo message, i.e.\ncurl -H \"Content-Type: application/json\" -X POST -d '{\"name\": \"alice\", \"message\": \"echo to myself\"}' http://localhost:8080/echo\nThis is a complicated enpoint. To make it easy for your user, you decide to provide API documentation.\nNirvana has built-in support to generate openapi documentation. To generate the docs, you need to first\ndefine where types come from. In our example, it's in the api package:\npackage api\n\n// Message defines the message to echo and to whom the message will be sent.\n// +caicloud:openapi=true\ntype Message struct {\n Name string `json:\"name\" validate:\"required\"`\n Message string `json:\"message\" validate:\"gt=10\"`\n}\n\nNext step is to generate openapi definitions:\nopenapi-gen \\\n -i github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api \\\n -p github.com/caicloud/nirvana/examples/getting-started/openapi/pkg/api\nFinally, we can build our openapi specification:\nswagger, err := builder.BuildOpenAPISpec(&echo, &common.Config{\n Info: &spec.Info{\n InfoProps: spec.InfoProps{\n Title: \"echo server openAPI\",\n Description: \"This is open API documentation of echo server\",\n Contact: &spec.ContactInfo{\n Name: \"nirvana\",\n URL: \"https://gonirvana.io\",\n },\n License: &spec.License{\n Name: \"Apache License, Version 2.0\",\n URL: \"http://www.apache.org/licenses/LICENSE-2.0\",\n },\n Version: \"v1.0.0\",\n },\n },\n GetDefinitions: api.GetOpenAPIDefinitions,\n})\nif err != nil {\n panic(err)\n}\nencoder := json.NewEncoder(os.Stdout)\nif err := encoder.Encode(swagger); err != nil {\n panic(err)\n}\n\nNow run the following command, we can generate our swagger.json file. Put it into https://editor.swagger.io/,\nwe'll be able to view our generated API docs.\ngo run ./examples/getting-started/openapi/echo.go > /tmp/swagger.json\nFor full example code, see openapi.\n"},"topics/metrics.html":{"url":"topics/metrics.html","title":"Metrics","keywords":"","body":"Metrics\nIt's time to expose some metrics to help understand and diagnose our service! Nirvana has out-of-box support for\ninstrumentation. To enable exposing request metrics, just add one more configuration:\nconfig := nirvana.NewDefaultConfig(\"\", 8080).\n Configure(\n metrics.Path(\"/metrics\"),\n )\n\nThe actual configuration is done with metrics plugin. plugin is another concept in Nirvana - we can always\nadd more functionalities to Nirvana via plugin, and each plugin can be individually enabled or disabled. How\nplugins are implemented depends on plugin author. For example, some plugins are simply static configuration,\nwhile some are more complex middlewares. All plugins are registered into config. The server will install them\nwhen the server starts.\nNow if we start our server, we'll see a wealth of information exposed as prometheus format.\nThe metrics are exposed via /metrics endpoint.\n$ go run ./examples/getting-started/metrics/echo.go\nUse ab (ApacheBench) to simulate some user load; in another terminal, run:\nab -n 1000 -H 'Content-type: application/json' 'http://localhost:8080/echo?msg=testtesttest'\nOnce done, let's checkout some default metrics from metrics plugin. The metric nirvana_request_count tells\nus how many requests we've seen in total. Since we use -n 1000, there will be 1000 requests to /echo endpoint.\n$ curl http://localhost:8080/metrics 2>&1 | grep nirvana_request_count\n# HELP nirvana_request_count Counter of server requests broken out for each verb, API resource, client, and HTTP response contentType and code.\n# TYPE nirvana_request_count counter\nnirvana_request_count{client=\"ApacheBench/2.3\",code=\"200\",contentType=\"application/json\",method=\"GET\",path=\"/echo\"} 1000\nThe metric nirvana_request_latencies shows distribution of our service latencies. We've added a random sleep\nbetween [0, 100) in our service; therefore, p90 is around 90m.\n$ curl http://localhost:8080/metrics 2>&1 | grep \"nirvana_request_latencies\"\n# HELP nirvana_request_latencies Response latency distribution in microseconds for each verb, resource and client.\n# TYPE nirvana_request_latencies histogram\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"125000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"250000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"500000\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"1e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"2e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"4e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"8e+06\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/echo\",le=\"+Inf\"} 1000\nnirvana_request_latencies_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"125000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"250000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"500000\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"1e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"2e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"4e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"8e+06\"} 1\nnirvana_request_latencies_bucket{method=\"GET\",path=\"/metrics\",le=\"+Inf\"} 1\nnirvana_request_latencies_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_count{method=\"GET\",path=\"/metrics\"} 1\n# HELP nirvana_request_latencies_summary Response latency summary in microseconds for each verb and resource.\n# TYPE nirvana_request_latencies_summary summary\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.5\"} 53\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.9\"} 89\nnirvana_request_latencies_summary{method=\"GET\",path=\"/echo\",quantile=\"0.99\"} 98\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/echo\"} 48533\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/echo\"} 1000\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.5\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.9\"} 0\nnirvana_request_latencies_summary{method=\"GET\",path=\"/metrics\",quantile=\"0.99\"} 0\nnirvana_request_latencies_summary_sum{method=\"GET\",path=\"/metrics\"} 0\nnirvana_request_latencies_summary_count{method=\"GET\",path=\"/metrics\"} 1\nSee user guide for more information about metrics plugin (and others). For full example code, see metrics.\n"}}} \ No newline at end of file diff --git a/docs/zh-hans/concepts/clients.html b/docs/zh-hans/concepts/clients.html index a11702c1..a25a896c 100644 --- a/docs/zh-hans/concepts/clients.html +++ b/docs/zh-hans/concepts/clients.html @@ -900,7 +900,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"多客户端整合","level":"1.3.14","depth":2,"next":{"title":"插件","level":"1.4","depth":1,"ref":"","articles":[{"title":"系统日志插件","level":"1.4.1","depth":2,"path":"plugins/logger.md","ref":"plugins/logger.md","articles":[]},{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},{"title":"健康检查插件","level":"1.4.7","depth":2,"path":"plugins/healthcheck.md","ref":"plugins/healthcheck.md","articles":[]}]},"previous":{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/clients.md","mtime":"2018-08-09T13:31:34.815Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"多客户端整合","level":"1.3.14","depth":2,"next":{"title":"插件","level":"1.4","depth":1,"ref":"","articles":[{"title":"系统日志插件","level":"1.4.1","depth":2,"path":"plugins/logger.md","ref":"plugins/logger.md","articles":[]},{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},{"title":"健康检查插件","level":"1.4.7","depth":2,"path":"plugins/healthcheck.md","ref":"plugins/healthcheck.md","articles":[]}]},"previous":{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/clients.md","mtime":"2019-08-06T09:48:58.225Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/configurer.html b/docs/zh-hans/concepts/configurer.html index d76174d1..e3b75495 100644 --- a/docs/zh-hans/concepts/configurer.html +++ b/docs/zh-hans/concepts/configurer.html @@ -805,7 +805,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"配置器机制","level":"1.3.12","depth":2,"next":{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},"previous":{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/configurer.md","mtime":"2018-08-09T13:31:34.817Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"配置器机制","level":"1.3.12","depth":2,"next":{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},"previous":{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/configurer.md","mtime":"2019-08-06T09:48:58.226Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/context.html b/docs/zh-hans/concepts/context.html index 77a36509..08ea079f 100644 --- a/docs/zh-hans/concepts/context.html +++ b/docs/zh-hans/concepts/context.html @@ -819,7 +819,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Context","level":"1.3.7","depth":2,"next":{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},"previous":{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/context.md","mtime":"2018-08-09T13:31:34.819Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Context","level":"1.3.7","depth":2,"next":{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},"previous":{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/context.md","mtime":"2019-08-06T09:48:58.226Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/cp.html b/docs/zh-hans/concepts/cp.html index 1bc3d927..1271386b 100644 --- a/docs/zh-hans/concepts/cp.html +++ b/docs/zh-hans/concepts/cp.html @@ -886,7 +886,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Consumer && Producer","level":"1.3.1","depth":2,"next":{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},"previous":{"title":"概念","level":"1.3","depth":1,"ref":"","articles":[{"title":"Consumer && Producer","level":"1.3.1","depth":2,"path":"concepts/cp.md","ref":"concepts/cp.md","articles":[]},{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},{"title":"多客户端整合","level":"1.3.14","depth":2,"path":"concepts/clients.md","ref":"concepts/clients.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/cp.md","mtime":"2018-08-09T13:31:34.821Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Consumer && Producer","level":"1.3.1","depth":2,"next":{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},"previous":{"title":"概念","level":"1.3","depth":1,"ref":"","articles":[{"title":"Consumer && Producer","level":"1.3.1","depth":2,"path":"concepts/cp.md","ref":"concepts/cp.md","articles":[]},{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},{"title":"多客户端整合","level":"1.3.14","depth":2,"path":"concepts/clients.md","ref":"concepts/clients.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/cp.md","mtime":"2019-08-06T09:48:58.226Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/destination.html b/docs/zh-hans/concepts/destination.html index 33edb09f..f614e4a1 100644 --- a/docs/zh-hans/concepts/destination.html +++ b/docs/zh-hans/concepts/destination.html @@ -806,7 +806,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Destination Handler","level":"1.3.9","depth":2,"next":{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},"previous":{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/destination.md","mtime":"2018-08-09T13:31:34.822Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Destination Handler","level":"1.3.9","depth":2,"next":{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},"previous":{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/destination.md","mtime":"2019-08-06T09:48:58.227Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/error.html b/docs/zh-hans/concepts/error.html index 64f660f7..04e60f64 100644 --- a/docs/zh-hans/concepts/error.html +++ b/docs/zh-hans/concepts/error.html @@ -853,7 +853,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"错误包","level":"1.3.10","depth":2,"next":{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},"previous":{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/error.md","mtime":"2018-08-09T13:31:34.824Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"错误包","level":"1.3.10","depth":2,"next":{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},"previous":{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/error.md","mtime":"2019-08-06T09:48:58.228Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/filter.html b/docs/zh-hans/concepts/filter.html index 363a8029..cf0ea213 100644 --- a/docs/zh-hans/concepts/filter.html +++ b/docs/zh-hans/concepts/filter.html @@ -791,7 +791,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Filter","level":"1.3.3","depth":2,"next":{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},"previous":{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/filter.md","mtime":"2018-08-09T13:31:34.825Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Filter","level":"1.3.3","depth":2,"next":{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},"previous":{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/filter.md","mtime":"2019-08-06T09:48:58.228Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/method.html b/docs/zh-hans/concepts/method.html index b43903fb..66c3b805 100644 --- a/docs/zh-hans/concepts/method.html +++ b/docs/zh-hans/concepts/method.html @@ -842,7 +842,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"方法包","level":"1.3.11","depth":2,"next":{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},"previous":{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/method.md","mtime":"2018-08-09T13:31:34.827Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"方法包","level":"1.3.11","depth":2,"next":{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},"previous":{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/method.md","mtime":"2019-08-06T09:48:58.228Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/middleware.html b/docs/zh-hans/concepts/middleware.html index b7eca43e..f81e5706 100644 --- a/docs/zh-hans/concepts/middleware.html +++ b/docs/zh-hans/concepts/middleware.html @@ -803,7 +803,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Middleware","level":"1.3.6","depth":2,"next":{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},"previous":{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/middleware.md","mtime":"2018-08-09T13:31:34.828Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Middleware","level":"1.3.6","depth":2,"next":{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},"previous":{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/middleware.md","mtime":"2019-08-06T09:48:58.229Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/modifier.html b/docs/zh-hans/concepts/modifier.html index a0c3260e..5ffa73f7 100644 --- a/docs/zh-hans/concepts/modifier.html +++ b/docs/zh-hans/concepts/modifier.html @@ -794,7 +794,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Modifier","level":"1.3.5","depth":2,"next":{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},"previous":{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/modifier.md","mtime":"2018-08-09T13:31:34.830Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Modifier","level":"1.3.5","depth":2,"next":{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},"previous":{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/modifier.md","mtime":"2019-08-06T09:48:58.229Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/operator.html b/docs/zh-hans/concepts/operator.html index 0befcb5b..0857096e 100644 --- a/docs/zh-hans/concepts/operator.html +++ b/docs/zh-hans/concepts/operator.html @@ -908,7 +908,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Operator","level":"1.3.2","depth":2,"next":{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},"previous":{"title":"Consumer && Producer","level":"1.3.1","depth":2,"path":"concepts/cp.md","ref":"concepts/cp.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/operator.md","mtime":"2018-08-09T13:31:34.832Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Operator","level":"1.3.2","depth":2,"next":{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},"previous":{"title":"Consumer && Producer","level":"1.3.1","depth":2,"path":"concepts/cp.md","ref":"concepts/cp.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/operator.md","mtime":"2019-08-06T09:48:58.229Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/plugin.html b/docs/zh-hans/concepts/plugin.html index 60b0cae0..8f7d5573 100644 --- a/docs/zh-hans/concepts/plugin.html +++ b/docs/zh-hans/concepts/plugin.html @@ -832,7 +832,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"插件机制","level":"1.3.13","depth":2,"next":{"title":"多客户端整合","level":"1.3.14","depth":2,"path":"concepts/clients.md","ref":"concepts/clients.md","articles":[]},"previous":{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/plugin.md","mtime":"2018-08-09T13:31:34.833Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"插件机制","level":"1.3.13","depth":2,"next":{"title":"多客户端整合","level":"1.3.14","depth":2,"path":"concepts/clients.md","ref":"concepts/clients.md","articles":[]},"previous":{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/plugin.md","mtime":"2019-08-06T09:48:58.229Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/prefab.html b/docs/zh-hans/concepts/prefab.html index f7686a9e..464f8464 100644 --- a/docs/zh-hans/concepts/prefab.html +++ b/docs/zh-hans/concepts/prefab.html @@ -808,7 +808,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Prefab","level":"1.3.4","depth":2,"next":{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},"previous":{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/prefab.md","mtime":"2018-08-09T13:31:34.835Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Prefab","level":"1.3.4","depth":2,"next":{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},"previous":{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/prefab.md","mtime":"2019-08-06T09:48:58.230Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/concepts/source.html b/docs/zh-hans/concepts/source.html index 7b6bcb66..8971eb82 100644 --- a/docs/zh-hans/concepts/source.html +++ b/docs/zh-hans/concepts/source.html @@ -791,7 +791,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"Parameter Generator","level":"1.3.8","depth":2,"next":{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},"previous":{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/source.md","mtime":"2018-08-09T13:31:34.837Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"Parameter Generator","level":"1.3.8","depth":2,"next":{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},"previous":{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"concepts/source.md","mtime":"2019-08-06T09:48:58.230Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/guides/api.html b/docs/zh-hans/guides/api.html index 84df8b1d..be22c6f2 100644 --- a/docs/zh-hans/guides/api.html +++ b/docs/zh-hans/guides/api.html @@ -1068,7 +1068,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"API","level":"1.2.2","depth":2,"next":{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},"previous":{"title":"项目结构和初始化","level":"1.2.1","depth":2,"path":"guides/project.md","ref":"guides/project.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/api.md","mtime":"2018-08-09T13:31:34.840Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"API","level":"1.2.2","depth":2,"next":{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},"previous":{"title":"项目结构和初始化","level":"1.2.1","depth":2,"path":"guides/project.md","ref":"guides/project.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/api.md","mtime":"2019-08-06T09:48:58.230Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/guides/client.html b/docs/zh-hans/guides/client.html index ac93fe15..64fa68b2 100644 --- a/docs/zh-hans/guides/client.html +++ b/docs/zh-hans/guides/client.html @@ -914,7 +914,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"生成客户端","level":"1.2.4","depth":2,"next":{"title":"概念","level":"1.3","depth":1,"ref":"","articles":[{"title":"Consumer && Producer","level":"1.3.1","depth":2,"path":"concepts/cp.md","ref":"concepts/cp.md","articles":[]},{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},{"title":"多客户端整合","level":"1.3.14","depth":2,"path":"concepts/clients.md","ref":"concepts/clients.md","articles":[]}]},"previous":{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/client.md","mtime":"2018-08-09T13:31:34.842Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"生成客户端","level":"1.2.4","depth":2,"next":{"title":"概念","level":"1.3","depth":1,"ref":"","articles":[{"title":"Consumer && Producer","level":"1.3.1","depth":2,"path":"concepts/cp.md","ref":"concepts/cp.md","articles":[]},{"title":"Operator","level":"1.3.2","depth":2,"path":"concepts/operator.md","ref":"concepts/operator.md","articles":[]},{"title":"Filter","level":"1.3.3","depth":2,"path":"concepts/filter.md","ref":"concepts/filter.md","articles":[]},{"title":"Prefab","level":"1.3.4","depth":2,"path":"concepts/prefab.md","ref":"concepts/prefab.md","articles":[]},{"title":"Modifier","level":"1.3.5","depth":2,"path":"concepts/modifier.md","ref":"concepts/modifier.md","articles":[]},{"title":"Middleware","level":"1.3.6","depth":2,"path":"concepts/middleware.md","ref":"concepts/middleware.md","articles":[]},{"title":"Context","level":"1.3.7","depth":2,"path":"concepts/context.md","ref":"concepts/context.md","articles":[]},{"title":"Parameter Generator","level":"1.3.8","depth":2,"path":"concepts/source.md","ref":"concepts/source.md","articles":[]},{"title":"Destination Handler","level":"1.3.9","depth":2,"path":"concepts/destination.md","ref":"concepts/destination.md","articles":[]},{"title":"错误包","level":"1.3.10","depth":2,"path":"concepts/error.md","ref":"concepts/error.md","articles":[]},{"title":"方法包","level":"1.3.11","depth":2,"path":"concepts/method.md","ref":"concepts/method.md","articles":[]},{"title":"配置器机制","level":"1.3.12","depth":2,"path":"concepts/configurer.md","ref":"concepts/configurer.md","articles":[]},{"title":"插件机制","level":"1.3.13","depth":2,"path":"concepts/plugin.md","ref":"concepts/plugin.md","articles":[]},{"title":"多客户端整合","level":"1.3.14","depth":2,"path":"concepts/clients.md","ref":"concepts/clients.md","articles":[]}]},"previous":{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/client.md","mtime":"2019-08-06T09:48:58.230Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/guides/doc.html b/docs/zh-hans/guides/doc.html index 16492434..6dc61f31 100644 --- a/docs/zh-hans/guides/doc.html +++ b/docs/zh-hans/guides/doc.html @@ -784,7 +784,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"生成 API 文档","level":"1.2.3","depth":2,"next":{"title":"生成客户端","level":"1.2.4","depth":2,"path":"guides/client.md","ref":"guides/client.md","articles":[]},"previous":{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/doc.md","mtime":"2018-08-09T13:31:34.843Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"生成 API 文档","level":"1.2.3","depth":2,"next":{"title":"生成客户端","level":"1.2.4","depth":2,"path":"guides/client.md","ref":"guides/client.md","articles":[]},"previous":{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/doc.md","mtime":"2019-08-06T09:48:58.231Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/guides/images/docs.png b/docs/zh-hans/guides/images/docs.png index 55c9ba52..c372ca1f 100644 Binary files a/docs/zh-hans/guides/images/docs.png and b/docs/zh-hans/guides/images/docs.png differ diff --git a/docs/zh-hans/guides/project.html b/docs/zh-hans/guides/project.html index 501c73f6..a26c1d10 100644 --- a/docs/zh-hans/guides/project.html +++ b/docs/zh-hans/guides/project.html @@ -774,7 +774,13 @@

创建项目

这个项目中包含了编译和构建容器的基本工具(Makefile 和 Dockefile),还有一个 golang/dep 的需要的包定义文件 Gopkg.toml。通过如下命令即可完成依赖包的安装:

$ dep ensure -v
 

到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个 API 范例,因此可以直接运行查看效果。

-

编译运行

+

使用 go module 进行包管理

+

Nirvana 也提供对 go module 的支持。

+

首先将 Go 语言版本升级到最新版本 ,然后在创建项目时添加 --package-manager 参数:

+
$ nirvana init --package-manager mod ./myproject
+

在当前 GO 语言版本(Version 1.11)中,若项目处于 $GOPATH/src 目录下,则还需要运行一下命令开启 module 功能:

+
$ export GO111MODULE=on
+

编译运行

直接编译运行

Nirvana 创建项目时自动生成了 Makefile,只需要使用简单的 make 命令就可以完成编译工作:

$ make
@@ -866,7 +872,7 @@ 

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"项目结构和初始化","level":"1.2.1","depth":2,"next":{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},"previous":{"title":"快速入门","level":"1.2","depth":1,"ref":"","articles":[{"title":"项目结构和初始化","level":"1.2.1","depth":2,"path":"guides/project.md","ref":"guides/project.md","articles":[]},{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},{"title":"生成客户端","level":"1.2.4","depth":2,"path":"guides/client.md","ref":"guides/client.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/project.md","mtime":"2018-08-09T13:31:34.850Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"项目结构和初始化","level":"1.2.1","depth":2,"next":{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},"previous":{"title":"快速入门","level":"1.2","depth":1,"ref":"","articles":[{"title":"项目结构和初始化","level":"1.2.1","depth":2,"path":"guides/project.md","ref":"guides/project.md","articles":[]},{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},{"title":"生成客户端","level":"1.2.4","depth":2,"path":"guides/client.md","ref":"guides/client.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"guides/project.md","mtime":"2019-08-06T09:48:58.236Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/index.html b/docs/zh-hans/index.html index ff028ec2..fc30ab0a 100644 --- a/docs/zh-hans/index.html +++ b/docs/zh-hans/index.html @@ -767,7 +767,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"概览","level":"1.1","depth":1,"next":{"title":"快速入门","level":"1.2","depth":1,"ref":"","articles":[{"title":"项目结构和初始化","level":"1.2.1","depth":2,"path":"guides/project.md","ref":"guides/project.md","articles":[]},{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},{"title":"生成客户端","level":"1.2.4","depth":2,"path":"guides/client.md","ref":"guides/client.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"README.md","mtime":"2018-08-09T13:31:34.865Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":".","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"概览","level":"1.1","depth":1,"next":{"title":"快速入门","level":"1.2","depth":1,"ref":"","articles":[{"title":"项目结构和初始化","level":"1.2.1","depth":2,"path":"guides/project.md","ref":"guides/project.md","articles":[]},{"title":"API","level":"1.2.2","depth":2,"path":"guides/api.md","ref":"guides/api.md","articles":[]},{"title":"生成 API 文档","level":"1.2.3","depth":2,"path":"guides/doc.md","ref":"guides/doc.md","articles":[]},{"title":"生成客户端","level":"1.2.4","depth":2,"path":"guides/client.md","ref":"guides/client.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"README.md","mtime":"2019-08-06T09:48:58.225Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":".","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/plugins/healthcheck.html b/docs/zh-hans/plugins/healthcheck.html index 9698939d..425dde59 100644 --- a/docs/zh-hans/plugins/healthcheck.html +++ b/docs/zh-hans/plugins/healthcheck.html @@ -788,7 +788,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"健康检查插件","level":"1.4.7","depth":2,"next":{"title":"框架开发者指南","level":"1.5","depth":1,"ref":"","articles":[{"title":"准备工作","level":"1.5.1","depth":2,"path":"topics/start.md","ref":"topics/start.md","articles":[]},{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},{"title":"cmd/nirvana","level":"1.5.14","depth":2,"path":"topics/command.md","ref":"topics/command.md","articles":[]}]},"previous":{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/healthcheck.md","mtime":"2018-08-09T13:31:34.853Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"健康检查插件","level":"1.4.7","depth":2,"next":{"title":"框架开发者指南","level":"1.5","depth":1,"ref":"","articles":[{"title":"准备工作","level":"1.5.1","depth":2,"path":"topics/start.md","ref":"topics/start.md","articles":[]},{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},{"title":"cmd/nirvana","level":"1.5.14","depth":2,"path":"topics/command.md","ref":"topics/command.md","articles":[]}]},"previous":{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/healthcheck.md","mtime":"2019-08-06T09:48:58.237Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/plugins/logger.html b/docs/zh-hans/plugins/logger.html index 98e074e0..bbe503d5 100644 --- a/docs/zh-hans/plugins/logger.html +++ b/docs/zh-hans/plugins/logger.html @@ -781,7 +781,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"系统日志插件","level":"1.4.1","depth":2,"next":{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},"previous":{"title":"插件","level":"1.4","depth":1,"ref":"","articles":[{"title":"系统日志插件","level":"1.4.1","depth":2,"path":"plugins/logger.md","ref":"plugins/logger.md","articles":[]},{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},{"title":"健康检查插件","level":"1.4.7","depth":2,"path":"plugins/healthcheck.md","ref":"plugins/healthcheck.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/logger.md","mtime":"2018-08-09T13:31:34.855Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"系统日志插件","level":"1.4.1","depth":2,"next":{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},"previous":{"title":"插件","level":"1.4","depth":1,"ref":"","articles":[{"title":"系统日志插件","level":"1.4.1","depth":2,"path":"plugins/logger.md","ref":"plugins/logger.md","articles":[]},{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},{"title":"健康检查插件","level":"1.4.7","depth":2,"path":"plugins/healthcheck.md","ref":"plugins/healthcheck.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/logger.md","mtime":"2019-08-06T09:48:58.237Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/plugins/metrics.html b/docs/zh-hans/plugins/metrics.html index f274b035..e3d352ba 100644 --- a/docs/zh-hans/plugins/metrics.html +++ b/docs/zh-hans/plugins/metrics.html @@ -793,7 +793,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"监控指标插件","level":"1.4.3","depth":2,"next":{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},"previous":{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/metrics.md","mtime":"2018-08-09T13:31:34.857Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"监控指标插件","level":"1.4.3","depth":2,"next":{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},"previous":{"title":"请求日志插件","level":"1.4.2","depth":2,"path":"plugins/reqlog.md","ref":"plugins/reqlog.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/metrics.md","mtime":"2019-08-06T09:48:58.237Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/plugins/profiling.html b/docs/zh-hans/plugins/profiling.html index 63a75893..a8bb4dac 100644 --- a/docs/zh-hans/plugins/profiling.html +++ b/docs/zh-hans/plugins/profiling.html @@ -795,7 +795,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"性能分析插件","level":"1.4.5","depth":2,"next":{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},"previous":{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/profiling.md","mtime":"2018-08-09T13:31:34.859Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"性能分析插件","level":"1.4.5","depth":2,"next":{"title":"版本信息插件","level":"1.4.6","depth":2,"path":"plugins/version.md","ref":"plugins/version.md","articles":[]},"previous":{"title":"请求追踪插件","level":"1.4.4","depth":2,"path":"plugins/tracing.md","ref":"plugins/tracing.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/profiling.md","mtime":"2019-08-06T09:48:58.238Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/plugins/reqlog.html b/docs/zh-hans/plugins/reqlog.html index 8ca03c7c..7885ff34 100644 --- a/docs/zh-hans/plugins/reqlog.html +++ b/docs/zh-hans/plugins/reqlog.html @@ -807,7 +807,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"请求日志插件","level":"1.4.2","depth":2,"next":{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},"previous":{"title":"系统日志插件","level":"1.4.1","depth":2,"path":"plugins/logger.md","ref":"plugins/logger.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/reqlog.md","mtime":"2018-08-09T13:31:34.860Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"请求日志插件","level":"1.4.2","depth":2,"next":{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},"previous":{"title":"系统日志插件","level":"1.4.1","depth":2,"path":"plugins/logger.md","ref":"plugins/logger.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/reqlog.md","mtime":"2019-08-06T09:48:58.238Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/plugins/tracing.html b/docs/zh-hans/plugins/tracing.html index e097758a..664a3418 100644 --- a/docs/zh-hans/plugins/tracing.html +++ b/docs/zh-hans/plugins/tracing.html @@ -804,7 +804,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"请求追踪插件","level":"1.4.4","depth":2,"next":{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},"previous":{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/tracing.md","mtime":"2018-08-09T13:31:34.862Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"请求追踪插件","level":"1.4.4","depth":2,"next":{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},"previous":{"title":"监控指标插件","level":"1.4.3","depth":2,"path":"plugins/metrics.md","ref":"plugins/metrics.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/tracing.md","mtime":"2019-08-06T09:48:58.238Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/plugins/version.html b/docs/zh-hans/plugins/version.html index 5f68e0a0..11fabefc 100644 --- a/docs/zh-hans/plugins/version.html +++ b/docs/zh-hans/plugins/version.html @@ -803,7 +803,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"版本信息插件","level":"1.4.6","depth":2,"next":{"title":"健康检查插件","level":"1.4.7","depth":2,"path":"plugins/healthcheck.md","ref":"plugins/healthcheck.md","articles":[]},"previous":{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/version.md","mtime":"2018-08-09T13:31:34.864Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"版本信息插件","level":"1.4.6","depth":2,"next":{"title":"健康检查插件","level":"1.4.7","depth":2,"path":"plugins/healthcheck.md","ref":"plugins/healthcheck.md","articles":[]},"previous":{"title":"性能分析插件","level":"1.4.5","depth":2,"path":"plugins/profiling.md","ref":"plugins/profiling.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"plugins/version.md","mtime":"2019-08-06T09:48:58.239Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/search_index.json b/docs/zh-hans/search_index.json index cd7a7f01..d6d4297b 100644 --- a/docs/zh-hans/search_index.json +++ b/docs/zh-hans/search_index.json @@ -1 +1 @@ -{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["api","golang","nirvana","也就是说,业务可以完全不依赖框架。","在设计上与现存的一些","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","是一个着重于提高开发效率和业务解耦的","框架。","框架不同,它的核心目标是让业务与框架隔离。","概览","的各个组件也是依据这个基本法设计的。在"],"guides/project.html":["\"\"","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/someapi\"","#","$","$gopath/bin","$gopath/src/","$gopath/src/myproject","$path",".","./bin/myproject","./build/myproject/dockerfil","./myproject","/apis/v1","8080:8080","8080。","=","api","api.go","api。api","bin","build","cd","cmd","contacts:","contain","convert","curl","debian:jessi","definit","dep","description:","descriptor","descriptors.go","dockefile),还有一个","docker","dockerfil","email:","ensur","filter","filters.go","first","framework","github.com/caicloud/nirvana/cmd/nirvana","github.com/golang/dep/cmd/dep","go","golang/dep","golang:latest","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","hosts:","http","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages:","init","ip","localhost:8080","logo","main.go","maintain","make","makefil","makefile,只需要使用简单的","messag","message.go","middlewar","middlewares.go","modifi","modifiers.go","myproject","myproject:v0.1.0","name:","nirvana","nirvana.yaml","nobodi","nobody@nobody.io","p","pkg","prefix:","prefix,那么","project","project:","readme.md","regexp","regexp:","replac","replacement:","request","rules:","run","schemes:","server","u","us","v","v1","vendor","version","version.go","versions:","│","└──","├──","。","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","中也提供了直接打包成镜像的命令:","中间件","中):","为被替换为","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","会生成一个完整的","修改器","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","启动时会打印出","命令启动容器,然后进行访问:","命令就可以完成编译工作:","和","在","在服务启动之后,可以通过浏览器或者命令行访问","在需要发布的时候,通常需要打包成镜像的形式,在","在项目的","如果设置了","字段无效","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","定义","定义相关的代码都在这个目录中","定义,可以修改或删除","对应","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就能够看到","或域名,可以有多个","所有与","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","描述符","文档生成和客户端生成会依赖这个配置文件进行","服务使用的协议,只能填写","正则表达式,用于匹配路径","此时在","每个","比如设置","然后就可以直接使用命令创建项目(请确保","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","用于文档和客户端生成","的","的命令行和其他依赖工具:","的运行,只用于描述项目的信息以及区分不同版本的","的返回结果。","的需要的包定义文件","目录中就能看到编译后的二进制文件,直接运行:","直接编译运行","编译并打包成","编译运行","范例,因此可以直接运行查看效果。","访问","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径替换,因此需要正确设置版本规则。","过滤器","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","那么","配置文件,用于描述项目的基本信息和结构。","镜像","项目","项目。项目结构如下:","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置"],"guides/api.html":["\"/messages\",","\"/messages/{message}\",","\"count\",","\"exampl","\"get","\"list","\"messag","\"number","\"queri","\"thi","&message{","(*message,","([]message,","...","//","/apis/v1/resourc","/apis/v1/resources/{resource}","0;","10,","200","201","202","204",":=","=","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.parameter{","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`source:\"header,cont","`source:\"query,start,default=100\"`","anotherautostruct","api","api。","api,用于获取一条消息:","application/x","array\",","asynccr","asyncdelet","asyncpatch","asyncupd","auto","bodi","body,但是","content","content\",","content\"}","content:","contenttyp","context.context,","count","count)","creat","data","db","def.dataerrorresults(\"a","def.definition{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.query,","default:","default={value}","definit","definitions:","delet","describ","description:","descriptor","descriptor。","destin","entry.","error","error)","exampl","example\",","example\",\"content\":\"exampl","file","form","func","function:","getmessag","getmessage(ctx","get。","get,两者没有区别。","golang","header","http","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","id","id\"),","id\",","id,","id.","id/nam","id:","init","init()","int","int)","json","key","list","listmessag","listmessages(ctx","make([]message,","map[string]string,会写入","messag","message\"),","message\",","message.getmessage,","message.listmessages,","messages\"),","messages\",","messages.","meta","method","method:","multipart/form","name:","nil","nirvana","number","parameters:","patch","path","path:","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","post","prefab","put","queri","register([]def.descriptor{{","request","respons","rest","results:","return","server","sourc","source:","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","specifi","start","string","struct","summari","summary:","tag","titl","title:","type","type\"`","updat","url","urlencod","var","www","{","{\"id\":100,\"title\":\"thi","}","},","}...)","与业务函数的参数名称无关。","业务函数","业务函数返回结果如何放到请求的响应中。","中定义的动作以及对应的","中携带","中,我们建议所有的","中,所有的","之后,编译运行。然后访问","从","从请求的那一部分取得数据,然后传递给业务函数。","但是为了使","修改一个资源的部分内容","内部,比如一个","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","列表的","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","删除一个资源","参数值来源于","参数值来源于当前","参数名称,作为","参数描述","参数来源","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","名称","名称为","和","因为只获取一条消息,此处为","在","在一个","在使用","如果有多个","如果需要给字段设置默认值,则需要使用","定义。","定义了","定义了一个返回","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义,再对应业务函数:","定义:","对于","对于没有","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","成功状态码","或","所有的","接下来我们给项目增加一个","描述","数组包含了这个路径下的所有定义。","方法","方法。","方法。比如某个","方法包。","方法就应该是","方法都是语义层面的,为的是提高","无","是一个短语,用于描述这个","是从","是返回一个资源列表的,那么","更新一个资源(幂等)","有","根据上面的","根据资源唯一","概念","添加","用于描述一个业务函数的参数的来源和默认值。","的","的字段。","的字段。忽略所有没有","的形式。","的版本号。下表中展示了","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的结构体类型,会递归遍历以寻找带有","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型的","类型):","结构体,可以组合成一个:","给项目添加一个","而不是","范例如下:","获取一条消息的","获取资源","获取资源列表","详细描述这个","请求中使用的都是","路径","返回值可以是任意结构,自动转换并写入到","返回值目标","返回的是资源数组,所以使用","这个","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个返回值类型必须是","这是一个工具方法,用于快速生成一个参数结构。","这里添加的业务函数都是以","进行描述的。首先看一个","都是通过","都遵守","里取值。","里获取的。","链接","错误类型,必须是","风格,并且在","默认值"],"guides/doc.html":["$","/home/go/src/myproject","0702","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","8080","api","api.go:179","api.go:87","api.go:95","browser","default","directori","doc","http","http://127.0.0.1:8081","info","ip","listen","nirvana","open","packag","pkg/api","pleas","project","root","serv","serve=\":8081\"","specified,","view","|","会读取","公开给用户使用。于是我们需要给","即可查看文档。","和端口。","在完成了","并使用","提供了一个命令用于从项目中生成文档:","文档","文档截图如下:","服务用于访问这个文档。打开浏览器,访问","生成","的开发工作后,我们需要将","的用户提供一个文档,方便用户阅读。nirvana","端口提供服务。为了防止端口冲突,可以使用","设置监听的","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","这就表示文档生成成功,并且提供了一个","默认情况下,nirvana"],"guides/client.html":["!=","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"context\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","\"myproject/client/v1\"","$","&client{","&client{client},","&client{}","(","(*client,","(c","(interface,","(messag","(message1",")","*client","*client)","*message,","*rest.client","*rest.config)","*v1.client","./client","./client.go","./v1/client.go","./v1/types.go","//","/home/go/src/myproject","0702","10)","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","200,",":=","=","[]message,","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","api","c","c,","c.rest.request(\"get\",","c.v1","c.v1,","cli","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","clients.","contain","content","context.context,","count","count).","creat","data(&messages).","data(message1).","default","describ","directori","do(ctx)","entry.","err","error","error)","func","gener","getmessag","getmessage(ctx","golang","host:","id","id.","import","info","int","int)","interfac","io.read","io.readclos","listmessag","listmessages(ctx","log.fatal(err)","log.info(msgs)","main()","messag","message).","message1","messages.","msgs,","mustnewcli","mustnewclient(cfg","myproject/cli","new","new(message)","newclient","newclient(cfg","newclient(cfg)","nil","nil,","nirvana","nirvana.yaml","occurs.","output","packag","panic","panic(err)","path(\"message\",","pkg/api","project","query(\"count\",","rest","rest.newclient(cfg)","return","root","scheme:","specified,","string","struct","titl","type","types.go","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","var","version","{","|","}","})","└──","├──","中定义。api","使用客户端","依赖的结构体都会被提取出来并生成到","函数即可:","和","多客户端整合。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","指定其他输出目录(目前仅支持生成","支持良好,因此在","文件中,方便客户端使用。","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","生成代码","生成代码:","生成代码:","生成客户端","生成的客户端代码如下:","生成的客户端是版本化的,版本在","的参数和返回值中,尽量避免使用其他接口。","目前客户端生成对接口的支持还不完善,仅仅对","目录下生成","该命令默认会在","调用,可以生成客户端以供使用:","输出日志如下(项目路径和日志时间会有所不同):","限制"],"concepts/cp.html":["!=","&&","//","204",":=","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","application/json","application/octet","application/x","application/xml","conet","consum","consume(r","consumers:","consumer:","content","contenttyp","contenttype()","data","err","error","file","form","github.com/caicloud/nirvana/servic","handl","http","interfac","interface{})","io.read","io.reader,","io.writer,","json.marsh","json.unmarsh","log.fatal(err)","marshal","mime","multipart/form","newsimpleserializer(contenttype)","nil","nirvana","object","object.","pars","produc","produce(w","producers,并且他们的行为和","producers:","producer。","producer:","r","reader","return","serial","servic","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","specif","stream","string","text/plain","type","type.","unmarsh","urlencod","v","v.","w.","write","writer.","www","xml.marshal","xml.unmarsh","{","}","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","与","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","于","则负责将业务函数的返回结果写入到响应体中。","包提供了相应的工具用于注册用户自己的","包路径:","去读取数据并进行类型转换。","只能生成","可能不能满足实际使用需求。因此","和","在","在业务的实际场景中,默认提供的","在接收到","在需要生成","如果接收类型是","如果类型符合","实现了这个接口后,通过","将数据写入到响应。","将类型转换为字节数据写入到响应体中。","并成为","快速生成","或","接口。其中","接口或者是","描述","提供了","注册","添加","用于将请求体中的数据转换为业务函数需要的类型,而","的","的工具","的注册方法即可注册","空的","类型","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","自动处理数据转换,nirvana","说明了请求和响应中的数据类型。为了根据","请求中,content","进行解析。","通常对应于","通常情况下,我们需要快速添加一些","需要实现接口:","默认提供的"],"concepts/operator.html":["!=","\"converter\"}","\"count\",","\"list","\"number","\"queri","\"validator\"}","([]message,","(anytype,","(c","(interface{},","(uint,","*converterforanobject)","*validatorforanobject)","//","0;","10,","1,并且把",":=","=","[]def.operator{","[]def.parameter{","[]definition.operator{newcustom(f,\"custom","anoth","anytyp","anytype)","api","array\",","bool(tag","built","byte(tag","call","concret","context.context,","convert","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","count","count)","creat","custom","data","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","definit","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","descript","description\")}","description:","doc","done","err","error","error)","error)。其中参数的","error.","error。其中","example:","exp:","f","f(context.context,","f.","field","file","for(f","func","func(ctx","func.","function:","gen.","gener","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","go","go.","in()","indic","int","int(tag","int)","int16(tag","int32(tag","int64(tag","int8(tag","interfac","interface{})","interface{},","it'","kind","kind()","list","listmessag","listmessages(ctx","make([]message,","messag","message.listmessages,","messages\"),","messages\",","messages.","method:","name:","newcustom","newcustom(f","nil","nil,","nirvana","number","object","object,","object.","objv2,","one.","oper","operate(ctx","operator.","operators:","operator,那么","operator:","operator:valid","out","out()","paramet","parameters:","playground/validator,提供了用于生成","reader.","recommended.","reflect.typ","replac","result","results:","results。其中","return","second","signature:","source:","specifi","stream","string","string(tag","string)","string,","struct","struct(inst","struct{}","summary:","tag。","type","type.","uint","uint(tag","uint(value),","uint)","uint16(tag","uint32(tag","uint64(tag","uint8(tag","unless","us","user","valid","validate(object.(*object));","validation,","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","valu","var","way","{","{return","}","}),","},","业务函数","中使用","中添加","中,都有一组","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","会从第一个","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","包提供了工具方法用于将转换函数包装成","包的实现基于","包路径:","包还提供了方法用于创建自定义验证器:","可以不同。","和","和业务函数的参数一一对应,而","和返回值的","在","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在每个","在没有","对于结构体类型,在需要的字段上添加名为","并且会检查最后一个","接口,可用于针对单个参数或返回值进行验证和修改:","提供了","提供了两种类型的","方法获取类型,","是具体要验证的类型,不能使用接口。","是链式调用的,也就是说上一个","有时候默认的验证器不能覆盖复杂的验证需求,因此","注意:oper","的","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的情况下,nirvana","的方法:","的最小值为","的示例:","的返回值会作为下一个","类型。","类型。业务函数的参数也响应的变成了","类型是否和业务函数的参数类型一致。","类型转换为了","自定义验证器","转换函数必须符合","这个例子中,验证器要求","这是一个在","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","验证器函数必须符合签名"],"concepts/filter.html":["*http.request)","/","//","/。","/,如果存在就重定向到没有","/,如果没有就加上","application/x","befor","bool","data,然后","fals","false,","file。","fillleadingslash","filter","filtered.","form","func(resp","github.com/caicloud/nirvana/servic","handl","highest","http.responsewriter,","itself.","lifecycle.","matching.","mean","multipart/form","nirvana","pars","parserequestform","path","prioriti","redirecttrailingslash","req","request","request,","request.","return","router","run","type","url","urlencod","want","www","则表示请求不应该被继续处理,立刻丢弃。","包路径:","和","在整个","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","尾部是不是存在","提供了","提供的一些","机制,可以在收到一个请求的时候,立刻进行处理。并根据","框架中处于最高优先级。filter","的路径上。","的返回值来确定是直接丢弃该请求还是继续处理。","过滤器","返回","这两种类型的请求体,并转换为","这个过滤器判断","这个过滤器只针对","首部有没有"],"concepts/prefab.html":["\"context\",","(interface{},","...","//","=","[]def.parameter{","context","context.context)","contextprefab","contextprefab。请参考","creat","data.","def.definition{","def.prefab,","error)","form","github.com/caicloud/nirvana/servic","http","instanc","instance.","interfac","intern","make","make(ctx","modifi","name","name()","name.","name:","nirvana","paramet","parameters:","prefab","prefab。","prefab,即","prefab,名称为","reflect.typ","registerprefab()","request","return","servic","service.contextprefab。这个","someapi","sourc","source:","source。其他的","string","type","type()","type.","unmarsh","var","{","}","},","中一类特殊的","中实现的唯一一个","从请求中获取数据。","但是一般情况下,我们不应该这样使用","使用方法如下:","包的","包路径:","即可。","只需要将业务函数对应位置的","可以通过","和","将框架传递给它的与请求绑定的","提供的","是","来自于服务端本身。","注册需要的","的数据来源都是来自于请求,而","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","设置为","返回回去。"],"concepts/modifier.html":["*/*。","*definition.definition)","api","consum","consumeallifconsumesisempti","consumenoneforhttpget","consumer,即允许请求体为空。","context","context.context。","context。在这种场景下,如果每个","definit","definition.error。","definitionmodifi","definition。在我们实际开发过程中,经常会要求","delet","firstcontextparamet","func(d","github.com/caicloud/nirvana/servic","http","init","lasterrorresult","modif","modifi","modifiers。","nirvana","pkg/apis/modifi","prefab。启用之后,所有业务函数的第一个参数必须是","produc","produceallifproducesisempti","producenoneforhttpdelet","producer,即允许响应体为空。","type","下查看启用的","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","中,每一个","为所有","为所有的","为空的","会显得非常冗余。因此","公共部分的构建,而每个","创建的项目中,可以在","加上","加上空的","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包路径:","和","在","在使用","如下:","完成","实际上要填写的部分就是只与自身业务相关的信息。modifi","提供了","提供的","机制,允许在","生效之前,对","的","的最后一个返回值加上","的第一个参数添加上名为","类型的","这个","这样就能通过","进行修改。","都有一个对应的","都需要去描述这个参数,那么","默认启用的"],"concepts/middleware.html":["\"/path\",","/","//","/path","/path/path2","/path/path2/oth","1","1.","2","2.","3","3.",">","[]def.middleware{somemiddleware},","actions.","call","carri","chain","chain)","chain.continue()","contain","context.","continu","continue(context.context)","def.descriptor{","describ","descriptor","error","execut","form","func(context.context,","github.com/caicloud/nirvana/definit","interfac","middlewar","middlewares.","middlewares:","next","nirvana","on,","pass","path","path:","subsequ","type","url","want","{","}","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","且成功匹配的情况下,中间件的执行按照","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中间件","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件添加在","中:","包路径:","如果以下路径都添加了中间件:","有关,因此如果多个","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","添加成功后,所有前缀匹配","的请求都会执行这个中间件。","的顺序。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","那么如果存在请求"],"concepts/context.html":["\"application/x","\"content","\"multipart/form","([]string,","(multipart.file,","(reader","(string,","*http.request","//","bodi","body()","body.","bool","bool)","called.","check","code.","contain","content.","contentlength","contentlength()","contenttyp","context","context.","contextprefab","context。http","data","data\".","describ","extend","false,","file","file(key","form","form(key","github.com/caicloud/nirvana/servic","header","header(key","headerwrit","headerwritable()","http","http.responsewrit","http.responsewriter.","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","int","interfac","io.readcloser,","key.","length","method","nirvana","ok","once.","path","path(key","queri","query(key","read","reader","recal","request","request()","request.","responsewrit","responsewriter()","responsewriter。可是使用","return","routepath()","servic","statu","statuscod","statuscode()","string","string)","string,","string.","type","type\"","urlencoded\"","valid","valu","valuecontain","valuecontainer()","whether","writeheader()","writeheader().","written","www","{","}","中包含","中间件不应该修改","中,context","会把对应的","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","包的","包路径:","和","在","在一个请求路由匹配成功后,nirvana","方法获得","框架会为每个请求构建这样的","用于传递请求的上下文。context","的","相关接口如下:"],"concepts/source.html":["(interface{},","//","8","[]consumer,","consum","container.","context.context,","current","data","defaultvalu","definition.sourc","error","error)","func","gener","generate(ctx","generator.","generator。这些","generator:","github.com/caicloud/nirvana/servic","interfac","interface{},","name","nirvana","object","paramet","parameter.","parametergener","parametergenerator)","reflect.type)","regist","registerparametergener","registerparametergenerator(gener","return","servic","sourc","source()","source:path,query,header,form,file,body,auto,prefab。","string,","target","type","us","valid","valid.","validate(nam","valu","valuecontainer,","vc","whether","{","}","不能满足实际的业务需求,可以通过","包提供的方法注册自定义的","包路径:","如果","对应一个","每种","种类型的","负责一种类型的参数的验证和类型转换工作。","默认提供了","默认提供的"],"concepts/destination.html":["(goon","(or","//","1.","2.","3","3.","[]producer,","api","bool,","case","code","code.","context","context.","context.context,","continue):","current","deal","definit","definition.destin","definition.typ","descid","destin","destination()","destinationhandl","destinationhandler)","destination:meta,data,error。","err","error","error)","error.","everyth","execute.","false,","finish","func","github.com/caicloud/nirvana/servic","go","goon,用来确定是否需要执行下一个","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler:","higher","int","int,","interfac","interface{})","look","mean","next","nil","nil.","nirvana","noth","nothing)","ok,","prior","prioriti","priority()","produc","reflect.type)","regist","registerdestinationhandl","registerdestinationhandler(handl","result","return","run.","servic","someth","statu","subsequ","success","take","target","three","true,","type","type.","us","valid","validate(target","valu","value.","whether","wrong,","wrong.","{","}","不能满足实际的业务需求,可以通过","先执行。并且执行之后会返回","包提供的方法注册自定义的","包路径:","如果","存在优先级,优先级高的","对应一个","每种","种类型的","负责一种类型的返回结果的数据转换工作。","默认提供了","默认提供的"],"concepts/error.html":["\"${name}","\"exampl","\"there","\"thi","${id}\")","&message{","(*message,","//","100","101\",\"data\":{\"id\":\"101\"}}","200","404","500","=",">","api","code","code()","code.","common","contain","content\",","content\"}","content:","context.context,","correct\")","correct\",","curl","data","err","error","error()","error)","error.","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。创建","error,但是第一种方法比第二种多出更多特性:","example\",","example\",\"content\":\"exampl","func","getmessag","getmessage(ctx","github.com/caicloud/nirvana/error","golang","handler","http","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/101,即可得到一个","id","id,","id.","id:","id,也就是","implement","inform","int","int)","interfac","interface,","interface{}","intern","messag","message()","messagenotexist","messagenotexist.error(id)","nil","nil,","nirvana","notfound","object","reason","reason。","reason,方便客户端判断错误类型。","return","server","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","specifi","statu","string","title:","type","us","var","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","}","},","中,我们也经常看到使用数字","中,错误需要实现","为了方便使用,nirvana","于是","介绍","使用","使用范例","包","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包路径:","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在实际的业务中,http","在常见的商业","字段中,可以在客户端使用","对于这种错误,都会以","我们建议","接口。即:","接口。如果实现了,就会以","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","提供了","提供了一个新的接口:","方法一","方法二","是否由这个错误工厂生成。","来唯一确定一个错误","来标志的错误。但是数字","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","的","的响应,响应体为:","的形式判断一个","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的方式有两种:","的格式满足:","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的返回值作为","的返回值作为数据返回。","第一种方法带有","第一种方法支持使用","编译运行后可以得到结果:","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","访问","这两种方法都可以创建","这样做有两个优势:","这种形式的","通过","通过具体错误的","里的值进行文本国际化。","错误包","项目名[:模块名]:错误名"],"concepts/method.html":["\"count\",","\"list","\"listmessages\"),","\"method","\"methodname\")","\"number","\"queri","&container{title,","&container{}","(*container)(nil)","([]message,","(ctx","(m","*contain","*container)","*message.contain","//","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0;","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","10,","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","9\",\"content\":\"method","9\"}]",":=","=","[]def.parameter{","[{\"id\":0,\"title\":\"method","api","array\",","contain","content","content\"))","content}","context.context,","count","count)","creat","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","description:","error)","exampl","example\",","func","function:","get()","get(typin","github.com/caicloud/nirvana/definition/method","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","http://localhost:8080/apis/v1/messag","instance)","insterface{})","int)","interface{},","list","listmessag","listmessages(ctx","main.go","make([]message,","messag","messages\"),","messages\",","messages.","method","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","name:","newcontain","newcontainer(title,","nirvana","number","panic。","parameters:","put()","put(in","receiv","results:","return","source:","specifi","string","string)","struct","summary:","titl","type","var","{","}","},","业务方法:","中创建实例并通过","中,业务函数是","为了保证业务与","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","其中","具体实例类型","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","包介绍","包是一个全局实例容器,每种类型对应一个实例。","包路径:","包,用于分离实例的创建和","即可得到返回结果:","和","在","定义。","定义的无关性,nirvana","定义:","实例","实例。","接口实例类型","提供了","方法包","是一样的。","注意,get()","然后编译运行,访问","生成匿名函数:","用于生成一个匿名函数,生成的函数的签名没有方法的","的对应关系。","类型","获取接口实例:","设置接口实例:","请求的","这就是","部分,例如:","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。"],"concepts/configurer.html":["(c","*config","*config)","...","...configurer)","...definition.descriptor)","...service.definitionmodifier)","...service.filter)","//","api","config","config.","configur","configure(configur","configurers.","describ","descriptor(descriptor","error","filter(filt","filter。","func","func(c","github.com/caicloud/nirvana","ip","ip(ip","keyfil","locked.","log.logger)","logger(logg","logger,用于输出错误。","modifier(modifi","modifier。","nirvana","occur","panic","port(port","server","server.","string)","struct","tl","tls(certfile,","type","uint16)","us","{","}","包路径:","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在运行过程中使用的","地址。","实现了","描述。所有的","提供的","机制,用于单独配置每一项信息:","添加","添加到","的","设置","设置监听的","设置监听的端口。","证书和密钥。","都通过这个","配置器机制","里。"],"concepts/plugin.html":["\"pluginname\"","(i","*config)","*nirvana.config)","*plugininstaller)","//","=","`c.config(externalconfigname)`/`c.set(externalconfigname,","befor","builder.","c.set(externalconfigname,","careful,","certain","cfg","cfg)`","config","config.","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","conflict","const","current","delet","disabl","disable()","ensur","error","extern","externalconfignam","fielda.","fieldb.","fieldtype)","framework","func","func(c","get/sav","global","init()","instal","install(build","install/initi","interfac","name","name()","name.","need.","nil","nil)","nirvana","nirvana.","nirvana.configur","nirvana.registerconfiginstaller(&plugininstaller{})","packag","pleas","plugin","plugin.","plugininstal","plugins.","regist","registerconfiginstaller(ci","return","server","server.","servic","service.builder,","set","starting.","string","struct{}","stuff","terminating.","type","uninstal","uninstall(build","uniqu","us","won't","{","{...)","{...}","}","一个基本的插件框架如下:","一般情况下,插件应该通过插件","中添加插件配置。","包提供的方法进行注册:","在","插件实现了这个接口之后,即可通过","插件接口:","插件机制","的","进行注册。然后提供相应的","配置基本信息以外,还提供了插件机制。","除了使用"],"concepts/clients.html":["!=","\"clientset/svca\"","\"clientset/svcb\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","$","$gopath/src/","$gopath/src/clientset","$gopath/src/svca","$gopath/src/svcb","&clientset{}","(","(c","(interface,",")","*clientset)","*rest.config)","../clientset/svca","../clientset/svcb","//","10)",":=","=","a.","b.","c","c,","c.svca","c.svca,","c.svcb","c.svcb,","cd","cli","cli.svca().v1().listmessages(context.background(),","client","client.go","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","contain","creat","describ","err","error","error)","func","host:","import","init","interfac","log.fatal(err)","log.info(msgs)","main()","mkdir","msgs,","multipl","mustnewclientset","mustnewclientset(cfg","new","newclientset","newclientset(cfg","newclientset(cfg)","nil","nil,","nirvana","occurs.","output","packag","panic","panic(err)","rest","return","scheme:","set","set.","struct","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","touch","type","types.go","v1","v2","var","{","}","})","│","└──","├──","两个服务项目。","中创建","为了演示这个过程,我们逐步构建这个项目。","代码如下:","使用","创建","创建项目","即创建了","和","在","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","多客户端整合","整合客户端","此时","没有太大区别:","然后创建两个服务项目(仅用于演示):","生成","生成客户端","的使用方法和普通","的客户端:","的项目结构如下:","统一网关访问","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","项目,用于保存所有服务的客户端:","首先创建","默认情况下,我们会为每个服务生成如下结构的客户端:"],"plugins/logger.html":["//","`desc:\"debug","`desc:\"log","`desc:\"overrid","basic","bool","command","config","configur","contain","debug","enabled\"`","field","flag。","framework","github.com/caicloud/nirvana/plugins/logg","global","int32","level","level.","logger","logger\"`","logger.","logger。","logs\"`","mode.","modifi","nirvana","option","output","overrideglob","plugin","sens","server","struct","true,那么除了设置当前","type","{","}","为","以外,还会设置全局的","包的","包路径:","启用","就无效。如果","暴露","模式后,level","的","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","编写,只是为了通过","这个插件暴露三个选项:"],"plugins/reqlog.html":["/","bool)","configurer:","default()","disable()","doublelog(en","github.com/caicloud/nirvana/plugins/reqlog","id","key,默认为","log.logger)","logger","logger(l","nirvana.configur","request","requestid(en","requestidkey(key","sourceaddr(en","string)","x","上的中间件,用于打印所有路由匹配成功的请求的日志。","关闭插件","包路径:","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件并使用默认配置","插件","的","设置","设置请求","请求日志插件","请求日志插件会添加一个在"],"plugins/metrics.html":["/metric","api","configur","configurer:","disable()","github.com/caicloud/nirvana/plugins/metr","namespac","namespace(n","nirvana.configur","path","path(path","prometheu","prometheus,提供了一个","string)","修改。","关闭插件","包注册指标。采集端可以通过","包路径:","可以通过","启用插件后,可以直接向","插件","用于暴露服务端指标。","监控指标插件","监控指标插件基于","设置","路径","路径,默认值为","采集指标数据。"],"plugins/tracing.html":["/","//","addhook(hook","after(ctx","agenthostport","allow","befor","before(ctx","configurer:","context.context,","custom","customtracer(trac","defaulttracer(servicenam","disable()","exec","github.com/caicloud/nirvana/plugins/trac","hook","hook)","inform","interfac","nirvana.configur","opentrac","opentracing.span)","opentracing.tracer)","process","request","span","span.","string)","string,","trace","tracer","type","{","}","上添加一个中间件用于提取","使用自定义的","使用默认的","信息。","关闭插件","包路径:","接口实现了请求跟踪机制,会在","接口:","插件","设置请求","请求追踪插件","请求追踪插件基于"],"plugins/profiling.html":["/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","api,用于取得服务运行时信息。","configur","configurer:","descriptor:","disable()","github.com/caicloud/nirvana/plugins/profil","net/http/pprof","nirvana.configur","path","path(path","string)","一致的","修改。","关闭插件","前缀路径","包路径:","可以通过","性能分析插件","性能分析插件添加与","插件","设置路径前缀,默认值为","默认情况下,插件会添加四个"],"plugins/version.html":["/version","/version。","api","commit","configurer:","description(descript","disable()","github.com/caicloud/nirvana/plugins/profil","hash","hash(hash","name(nam","nirvana.configur","path(path","string)","version(vers","值","值。一般情况下可以设置为代码的","关闭插件","包路径:","插件","版本信息插件","版本信息插件提供一个","设置","设置服务","设置服务名称","设置服务版本号","设置服务的描述","路径默认为","路径,默认值为","返回服务的版本信息。api"],"plugins/healthcheck.html":["/healthz","/healthz。","api","checker","checker(check","configurer:","context.context)","disable()","error","func(ctx","github.com/caicloud/nirvana/plugins/healthcheck","healthcheck","healthchecker)","nil。如果服务异常,则返回相应的错误。","nirvana.configur","path(path","string)","type","健康检查插件","健康检查插件提供一个","关闭插件","包路径:","如果服务正常,则","应该返回","插件","插件提供了一个函数接口:","用于检查服务是否正常。","设置","路径,默认值为","返回服务当前是否健康。api","默认路径为"],"topics/start.html":["$","$gopath/src","1.10.x","1.9.x","account}/nirvana.git","api","cd","clone","cmd/nirvana","command","config","config.json","convert","definit","definition/method","dep","dep:https://github.com/golang/dep","error","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","fork","git","git@github.com:{your","github","github.com/caicloud/","githuh","go","golang","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","log","mkdir","nirvana","oper","p","plugin","pr","repo","server","servic","service/rout","test","util","validators,用于","vendor","vendor。","一般情况下,我们使用最新版本的","上","与","中。","中包含了两个组件功能实现了","中包含了许多实现了","中,不能在任何子目录下使用","之后,通过","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","以及插件化功能。","其中","准备工作","函数。请参考","到自己的账户下,然后下载源码到本地开发目录中:","功能,并提供了从","包之间的依赖关系:","包包含","包包含多个工具用于","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了框架","包帮助用户快速构建项目。","参数的类型转换和数据验证。","另外","只使用","和","在","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在完成修改并提交到自己的","大版本的兼容性。即使用","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","工作流程","帮助用户把实例方法转换为","开发工具介绍","开发的情况下,需要保持对","提交代码。","插件接口的插件。","方法包。","是","是基础包,分别负责日志基础接口和错误处理基础接口。","框架的","框架的设计核心思想是:隔离","框架设计概览","测试以外,还需要使用","生成,客户端代码生成,项目结构生成。","的主要命令,利用","的入口包。","的兼容性。","的形式向","的配置文件在根目录的","路由和处理的所有功能。","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行开发,但是需要保证两个","除了常规的"],"topics/log.html":["\"error\"","\"fatal\"","\"info\"","\"warn\"","(",")",".","...interface{})","//","1","1.","2","2.","3","3.","4","4.","5.","6.","=","[5,","api","api,并且允许用户接入其他日志系统。","append","argument","call","called.","can't","class","clone","clone(wrapp","const","correspond","current","custom","debug","document","error","error(...interface{})","error.","errorf","errorf(string,","errorln","errorln(...interface{})","exit","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","fmt.print;","fmt.printf;","fmt.println;","follow","four","frequent","glog","golang","handl","immediately.","implement","import","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","information.","int)","int32","interfac","level","level.","leveldebug","leveldebug)","levels.","log","log.","logger","logger.","logger,使用的是","logs,","logs.","mani","manner","math.maxint32","mean","method","missing.","more","neg","new","newlin","nil.","os.exit(1)","os.exit(1).","output","outsid","panic","posit","provid","recommend","recovered.","report","request","return","rules:","see","set","setdefaultlogger()","sever","severityerror","severityfat","severityinfo","severitywarn","silentlogg","site","situation.","stderr","stdlogger。可以通过","string","stripped.","strongli","type","us","usual","v","v(level)","valu","verbos","verboser,","verboser.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","whether","wrapper","wrapper.","write","{","}","之前,需要知道以下几件事情:","包","包提供了一组基础的日志","包有一个默认的","参考了","变更。","和一个使用了","在","在实现一个自定义的","对于不需要输出日志的场景,使用","方法。clone","方法用于在对","时候,使用","标准接口如下:","正确实现","的","的实例而不是","这套日志","进行包装的时候,获取正确层级的调用栈信息。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。"],"topics/errors.html":["\"${user}","(",")","...interface{})","//","11.2","11.3","11.4","11.5","2.3.3","2295,","2774,","3","3.1","3.2","4","4.2","4.4","4918,","5","5842,","6","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8.1","=","api","badgateway","badrequest","bool","build","build(reason","builder","builder,factori","check","code()","conflict","creat","current","deriv","derived(","error","error(format","error(v","error)","error。","error。其中","errros.","expectationfail","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fix","forbidden","format","format.","format,比如","found\")。","gatewaytimeout","gener","gone","http","httpversionnotsupport","immedi","insufficientstorag","int","interfac","interface{}","internalservererror","lengthrequir","lock","loopdetect","message()","methodnotallow","networkauthenticationrequir","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","nirvana","notaccept","notextend","notfound","notimpl","paymentrequir","preconditionfail","preconditionrequir","predefin","proxyauthrequir","reason","reason,","reason.","requestedrangenotsatisfi","requestentitytoolarg","requestheaderfieldstoolarg","requesttimeout","requesturitoolong","rfc","serviceunavail","string","string)","string,","teapot","toomanyrequest","type","unauthor","unavailableforlegalreason","unprocessableent","unsupportedmediatyp","upgraderequir","us","v","v.","var","variantalsonegoti","without","{","}","主要是以","之上,构建了","则用于判断一个错误是否是由当前的","则用于构建特定的","加上一些附加属性,用来表示返回的错误码等信息。","包","包中存在三个概念,分别是","包中):","包提供的","包的依赖,可以自行实现错误包,只要产出的错误符合","包类似于标准库的","包,但是提供了方法用于生成格式化的错误和错误判断。","可以构建带有","和","因此在","就足够了。但是为了让错误能够以","接口即可。","接口如下(这个接口并没有显式定义在","接口如下:","接口,用于创建具有一类特征的","方法用于直接创建出","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","状态码作为基础的:","生成。","用于传入参数输出一个真正的错误。","用于构建","的","的两个方法:","的形式向客户端返回,我们还需要给","的错误)。","目前","识别的错误,但是如果业务逻辑中如果不希望引入对","这个包方便了用户创建能够被","这样就能够非常方便的错误创建和错误判断了。","通常情况下,有","首先看"],"topics/definition.html":["!=","\"\"","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/some\",","\"accept\"","\"accept\".","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"content","\"converter\"}","\"create\"","\"data\"","\"delete\"","\"error\"","\"file\"","\"form\"","\"get\"","\"header\"","\"list\"","\"meta\"","\"multipart/form","\"patch\"","\"path\"","\"prefab\"","\"query\"","\"source\".","\"source,name\".","\"text/plain\"","\"update\"","\"validator\"}","(","(anytype,","(c","(interface{},",")","*converterforanobject)","*validatorforanobject)","//",":=","=","[]definit","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","`source:\"header,cont","`source:\"query,start\"`","accept","accepttypeal","actions.","altern","anytyp","anytype)","api","asynccr","asyncdelet","asyncpatch","asyncupd","auto","back","behavior.","bind","bodi","body.","brief","built","call","carri","cases,","certain","chain","chain)","chain.continue()","child","children","clearer","client","client.","code","code.","combin","concret","const","consum","consume.","consumes.","contain","content","content.","contenttyp","context.","context.context,","continu","continue(context.context)","converter:","converterforanobject","convertobjectv1toobjectv2(object.(*objectv1))","creat","create)。","current","custom","data","data\"","data\".","data.","default","defin","definit","definition.","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definitions.","delet","describ","descript","descriptor","descriptor'","descriptors.","destin","differ","element","empty,","equal","err","error","error)","error.","errorproduc","etc.","ex.","exampl","example.","example:","execut","exist","f","f(context.context,","field","field.","file","first","form","format","from.","func","func(context.context,","function","function.","gener","generator.","go.","handl","handler","handler.","header","header.","http","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","identifi","in()","indic","inherit","instanc","int","interfac","interface{}","interface{})","it'","key,","kind","kind()","last","line","list","locat","make","mani","mean","meta","method","method.","middlewar","middlewares.","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","modifi","more","name","name,","next","nil","nil,","nirvana","object","object,","object.","objv2,","occur","on","on,","one.","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operators:","out","out()","overrid","paramet","parameter.","parameters.","parent","parent'","pass","patch","path","path.","place","prefab","previou","produc","produce.","produces.","provid","queri","reader.","receiv","recommended.","reflect.typ","replac","request","request.","response.","result","result.","results.","retrun","return","return.","second","set","signature:","sourc","specially.","start","statu","stream","stream\"","string","string,","string.","struct","struct{}","sub","subsequ","succeess","success","summari","tag","tag.","target","time,","treat","type","type\"","type\"`","type.","unless","updat","url","urlencoded\"","us","usag","valid","validate(object.(*object));","validator:","validatorforanobject","valu","value.","values.","want","ways.","write","www","{","{return","}","中提供了","中,提供了","其中","其他与","其他与具体","分别对应","则针对单个的业务参数和返回值,可以对值进行验证和修改。","包","包包含了","包除了包含对","参数和返回值定义","可被","同等级别的字段","和","在","在上面的定义中,存在两个额外功能:","如果希望对","定义,用于描述","定义:","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","方法,这个方法是一个抽象方法,用于描述一种行为(比如","的","的参数与返回值。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的定义以外,还提供了一些函数,帮助快速构建","结构体包含了一个具体的","结构体包含具有如下含义的字段:","继承的字段","路径","路径同等级别的字段","进行扩展,需要遵守上面这些规则。"],"topics/method.html":["(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(c","*container)","...","//","=","api","contain","container.","container:","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","definit","definition.funct","definition/method","func","function","get(inst","golang","ifac","instanc","instance)","instance.","interface,","interface{}","interface{})","interface{},","mappings.","method","method)","method.","methods.","more","need","newcontainer()","on","put","put(inst","putinterfac","putinterface(ifac","return","specifi","string)","struct","type","us","var","want","{","}","一般情况下,用户会使用这个全局的容器。","之前使用。","包","包中,可以看到","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包还提供了一个全局的","可以在","和","在","容器如下:","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","时,使用","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","真正的实例,即","获取某个实例的方法,之后再在服务启动逻辑里","过程。也就是可以在声明","这个主要是利用了","这个实例方法容器分离了方法的"],"topics/converter.html":["\"converter\"","(anytype,","//","=","`converter`.","anytyp","anytype)","built","const","convert","converter.","creat","data","definition.oper","definition.operatorfunc(operatorkind,","describ","error)","error.","f(context.context,","f)","for(f","func","func.","gener","go.","interfac","interface{})","kind","kind.","mean","opeartor","oper","operatorkind","operators/convert","operator。","operator:","packag","paramet","recommended.","return","second","signature:","string","string,","struct","type","us","{","}","包","包提供了一个","实现,帮助用户快速构建名为","的","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为"],"topics/validator.html":["\"custom\"","\"struct\"","\"validator\"","\"var\"","(",")","//","=","[]definition.operator{newcustom(f,\"custom","`validator`.","allow","anoth","anytype)","automat","base","basic","bool","bool(tag","bool.","built","byte","byte(tag","call","categori","category()","categorycustom","categorystruct","categoryvar","const","context.context","context.context,","contextu","creat","current","custom","definition.oper","describ","descript","description\")}","description()","differ","distinguish","doc","done","error","exp:","expos","f","f.","fields,","func","func(ctx","gen.","gener","golang","gopkg.in/go","implementation.","indic","information.","int","int(tag","int*,","int16","int16(tag","int32","int32(tag","int64","int64(tag","int8","int8(tag","interfac","interface{})","interface{},","kind","kind.","mean","nest","newcustom","newcustom(f","object","opeartor","oper","operator.","operatorkind","operators/valid","operator:","otherwis","packag","pass","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","return","specifi","string","string(tag","string)","string,","struct","struct(inst","struct.","structs,","tag","tag()","tag.","type","type.","types.","types:","uint","uint(tag","uint*,","uint16","uint16(tag","uint32","uint32(tag","uint64","uint64(tag","uint8","uint8(tag","unless","us","user","valid","validation,","validator.","way","{","}","包","包提供了一系列的方法帮助用户快速生成用于校验参数的","基础类型,结构体类型和自定义类型。目前验证方法基于","目前支持三种类型的验证,分别对应"],"topics/router.html":["(executor,","*","*regexp.regexp",".*:","/","//","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/{regexp:[a",">","[]index","ab","api","call","can't","carri","chain","children","contain","context","context.","continu","continue(context.context)","definit","describ","error","error)","execut","execute(context.context)","execute.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exp","expression.","find","fix","form","full","fullmatch:.*","fullmatchregexpnod","func(context.context,","gener","handler","index","indic","inform","inspect","inspect(context.context)","inspector","inspector:","instanc","int","interfac","it'","key","match","match.","middlewar","middlewares.","name","next","node.","node:","nodes:","on,","optim","pass","path","path.","path:","pathnod","po","posit","prefix","regexp","regexp:[a","regexpnod","regexpnode.","regular","rest","return","router","routingchain","routingchain)","routingchain.continue()","segment.","select","servic","service/rout","someth","string","stringnod","struct","submatches.","target","the/rest/path","type","valid","valu","value.","want","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","}","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","下面用一个例子来说明这几个节点:","中间件接口如下:","之前。","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","剩余路径类型节点","剩余路径类型节点:","包","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包进行","包进行路由构建和匹配。","在上面的路径节点中,每个节点都可以绑定一个","如果能返回一个","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","完全匹配。","定义,然后由","实际上是调用的","对于中间件而言,处理完当前的任务之后只需要调用","将","执行完成之后,请求也处理完成了。","来生成一个能够处理当前的路由上下文的","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","路径匹配完成后,会调用匹配链的最后一个节点的","这个节点匹配剩余所有路径。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","通过"],"topics/service.html":["\"application/x","\"content","\"multipart/form","(","([]string,","(goon","(interface{},","(multipart.file,","(or","(reader","(service,","(string,",")","*definition.definition)","*http.request","*http.request)","...definition.descriptor)","...filter)","//","1.","100","2.","200","3.","300","=","[]consumer,","[]filter","[]producer,","[]string","[]string)","add","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","api","befor","bodi","body()","body.","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","bool","bool)","bool,","build","build()","builder","builder.","builder:","called.","case","check","code","code()","code.","common","const","consum","consume(r","consumer,converter,prefab","contain","container.","content.","contentlength","contentlength()","contenttyp","contenttype()","context","context.","context.context)","context.context,","contexthttpcontext","continue):","convert","creat","current","custom","data","data\".","data.","deal","defaultvalu","definit","definition.","definition.destin","definition.sourc","definition.typ","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definition。请求过滤器则是在","descid","describ","descriptor","destination()","destinationhandl","destinationhandlerdestinationhandl","element","err","error","error)","error.","everyth","execute.","executed.","executor","exists,","extend","false,","file","file(key","filter","filtered.","filters()","filters.","finish","form","form(key","func(ctx","func(d","func(resp","function","gener","generate(ctx","generator.","go","golang","handl","handle(ctx","handle.","handler","handler.","handlers.","header","header(key","headerwrit","headerwritable()","higher","highest","highprior","http","http.handler","http.handler,用来处理请求。","http.responsewrit","http.responsewriter,","http.responsewriter.","httpcontext","ignor","implement","inform","instanc","instance.","int","int,","interfac","interface,","interface{}","interface{})","interface{},","intern","io.readcloser,","io.reader,","io.writer,","it'","it.","itself.","key.","length","lifecycle.","log.logg","log.logger)","logger","logger()","look","lowprior","make","make(ctx","map[string][]definition.definit","map[string][]definition.middlewar","marshal","match","matching.","mean","mediumprior","messag","message()","meta","method","middlewar","middlewares()","middlewares.","mime","modifi","modifier()","modifier.","name","name()","name.","next","nil","nil.","nirvana","noth","nothing)","object","object.","occurs,","ok","ok,","on","once.","panic.","parameter.","parametergener","parametergeneratorparametergener","path","path(key","prefab","prior","prioriti","priority()","produc","produce(w","producerconsum","queri","query(key","query,head","r","read","reader","recal","reflect.typ","reflect.type)","req","request","request()","request,","request.","requests.","respons","responsewrit","responsewriter()","responsewriterresponsewrit","result","return","routepath()","router","router.","run","run.","server.","servic","service.","service.servehttp()","set","setlogg","setlogger(logg","setmodifi","setmodifier(m","someth","sourc","source()","specif","specifi","statu","statuscod","statuscode()","string","string)","string,","string.","subsequ","success","take","target","three","true,","type","type\"","type()","type.","unmarsh","urlencoded\"","us","user","v","v.","valid","valid.","validate(nam","validate(target","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","vc","w.","want","whether","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","{","|","}","↑","↓","中。","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","修改器用于在生成路由之前修改","修改器,请求过滤器,api","其中","则是将业务函数的返回值转换并写入到响应的","包","包实现了","包的入口是","包里提供了一个","和","基础类型的转换器这些转换器一般是用于将请求里的","处理框架:","实现了","实际上是一个","对应","将返回值转换为字节写入响应中。在","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","描述符。构建完成的","提供了多个方法用于设置生成服务需要的日志,definit","是业务函数返回值处理器,通过调用","是对","是真正的参数生成器,通过调用","服务。因此","来提供","构建","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于生成业务函数的参数的","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的基础类型,供业务函数使用。//","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型的","转换为路由需要的数据结构,涉及到以下内容:","返回出去,供业务函数使用。//","还会将","针对请求的"],"topics/nirvana.html":["(builder","(c","*config","*config)","...","...configurer)","//","activ","alway","anoth","api","befor","bool","builder","builder()","builder.","called.","check","clean","cleaner","cleaner.","clients.","complet","config","config(nam","config.","configinstal","configur","configure(configur","configurers.","config:","connections.","contain","context.context)","creat","creation,","current","delet","describ","directli","don't","down","err","error","error)","error,","except","extern","form","func","func()","func(c","get","gracefulli","handl","hold","http","instal","install(build","interfac","interface{}","interface{})","interrupt","ip","ip()","ip.","it.","listen","lock","locked()","locked.","log.logg","logger","logger()","logger.","method","modifi","name","name()","name.","new","newserv","newserver(c","nil","nirvana","occur","occurs.","one.","panic","plugins.","port","port()","port.","request","requests.","resourc","return","router","same","serv","serve()","server","server.","servic","service.builder,","services.","set","set(nam","shut","shutdown","shutdown(ctx","shutdown,","special","start","starting.","string","string)","string,","struct","stuff","terminating.","type","uint16","uninstal","uninstall(build","until","us","via","without","won't","{","}","中可以看到","中,存在一些","也在当前包中。如果需要对配置进行扩展,增强","创建","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","包","包依赖了","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","和","和插件系统。这个包放置在根目录中是因为这个包是","和第三方功能的扩展)。","在","接口如下:","提供的用于生成","方法安装插件。","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","的顶级包,而且其依赖的所有包只来自","级别的配置,这些配置是针对当前服务的。而对应的","自身和标准库(config","需要使用"],"topics/config.html":["'myconfig.name.firstname'.","'nirvana.ip'","(e.g.","(from","(in","(pem","(with","*cobra.command","*int,","*nirvana.config)","*string).","...customoption)","...definition.descriptor)","...plugin)","./","./config/","//","/etc/nirvana/",">","[]string","[]string.","`","`desc:\"desc","`desc:\"nirvana","`desc:\"tl","`desc`","`desc`).","`key`","`pointer`","add","add(point","addopt","addoption(prefix","ag","age\"`","associ","basic","behavior","bool","bool.","case","cert","certif","char","check","collect","comamnd","command","command(cfg","command.","config","config.","configur","configure(cfg","contain","convert","current","custom","customopt","data","default","default,","desc","describ","descript","divid","doc","don't","empti","enabl","enableplugin","enableplugin(plugin","env","env,","error","exampl","example):","example.ag","example.firstnam","example:","example_ag","example_first_nam","execut","execute(descriptor","executewithconfig","executewithconfig(cfg","executing.","field","field,","field.","file)","file,","fill","first","firstnam","flag","flag,","flags,","flags/env/config","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","follow","format)","func","get(key","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","github.com/spf13/cobra","github.com/spf13/vip","given","golang","help","help`,","here","hook","hook()","hook.","https\"`","https.","insensit","instead","int","int.","int16","int32","int32.","int64","int64.","int8","interfac","interface.","interface{}","interface{})","interface{},","ip","ip\"`","is:","isset","isset(key","it'","key","key.","key/valu","listen","listen.","locations.","method","methods.","name","name\"`","name()","name.","namespaces.","nirvana","nirvana.","nirvana.json","nirvana.toml","nirvana.yaml","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","non","obtain","on","option","option,","options.","option,并且实现","order:","overrid","override,","place","plugin","plugins.","pointer","port","port\"`","prefix","prioriti","privat","recommended.","regiser.","retriev","return","run","see","server","server.","set","set(key","set.","sethook","sethook(hook","short","shortflag","singl","specif","store,","store.","string","string)","string,","string.","struct","struct.","tag","time.dur","time.duration.","two","type","uint","uint.","uint16","uint32","uint32.","uint64","uint64.","uint8","up","us","use.","valu","via","viper","want","{","{executablefilepath}/","{executablefilepath}/config/","}","中传递","中的公开字段根据一定的规则(规则参考上面的注释)从","以外,config","包","包中对","包会从以下文件列表中读取配置文件:","包利用","包提供了一个","包的插件能力:","和","和相应的功能。","和配置读取,为","如果读取到配置文件,那么除了使用","实现了","扩展了","接口。用户在","接口如下:","接收配置以外,还可以通过一些帮助方法获取配置:","服务启动提供了命令行支持。","服务配置的特殊性,config","来启用插件,并且将插件","来表达这些配置:","注:如果在","由于","目录:","要求每个插件提供一个","进行了扩展,涉及到字段的改变,也需要在这个包中修改","配置文件名:","除了插件"],"topics/rest.html":["\"http\"","\"https\".","(*client,","(*http.response,","(c","(r","*client)","*config)","*http.request)","*map[string]string)","*request","*request)","...","...interface{})","//","api","bodi","body(contenttyp","builder","check","client","client.","client。而","code","config","config.","context.context)","creat","data","data(valu","definit","describ","do(ctx","do(req","empty,","error","error)","execut","executor","file","file(nam","form","form(nam","func","header","header(nam","host","host:port","http","http.defaultcli","implement","int,","interfac","interface{})","meta","meta(valu","method","newclient","newclient(cfg","nirvana","parameter.","path","path(nam","path.","path,query,header,form,file,bodi","pattern","pointer.","prefab","queri","query(nam","request","request(method","request.","requestexecutor","requests.","request。config","respons","rest","result.","right.","scheme","scheme.","server.","set","specif","statu","string","string)","string,","struct","type","url","us","used.","valu","{","}","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","会被由命令","保存了一个请求的数据,用","则由","创建,用来表示每一个","包","包提供了一个简单的","和","在这个包中,主要包含三个概念:config,cli","方法返回,因此这两种类型没有对应的方法。","是","是由服务端生成而不由客户端提交,error","服务。","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","注:这个","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","用于真正发起请求,并完成","用于访问","由","的填充。","的方法与","的配置,用于创建","的除了","请求。"],"topics/utils.html":["\"\"","\"alias\"","\"descriptors\"","\"modifiers\"","\"origin\"","(","(*api.definitions,","(*definitions,","(*types.package,","(a","(ac","(b","(exported)","(includ","(types.object,","(unexported)",")","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*comment","*contain","*container)","+nirvana:api=option:\"value\"。","...","...definition.descriptor)","...service.definitionmodifier)","...string)","//","0.","=","[]*ast.commentgroup","[]byte","[]exampl","[]funcfield","[]int","[]paramet","[]result","[]string","[]string{commentsoptiondescriptors,","[]structfield","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","abov","add","adddescriptor","adddescriptor(descriptor","addmodifi","addmodifier(modifi","alias.","analyz","analyzeranalyz","ananlyzer.","anonym","api","apibuild","apis.","array,","befor","between","bool","bool)","brief","build","build()","builder","builder.","builder:","bytes.","call","case","cases,","client","code","code.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","complet","conflict","const","consum","consume.","consumes.","contain","container.","containercontain","content","creat","current","data","data.","declar","def.definition.","default","definit","definition.","definition.destin","definition.method","definition.sourc","definitions.","definition此处的","depend","describ","descript","descriptions.","descriptor","descriptor'","descriptors.","descriptor。然后动态生成一个","destin","differ","directori","elem","element","embed","empti","empty,","encod","equal","error","error)","error.","errorproduc","exampl","example.","extract","field","field.","findpackag","findpackages(target","from.","func","funcfield","function","function.","gener","generate()","generators/golang","generators/swagg","generators/util","github.com/go","go","golang","handler","handler.","hold","http","httpcode","httpmethod","identifi","immedi","import","import(path","index","indic","inform","input","instanc","int","invalid","itself).","key","keyword.","kind","kind.","line","list","lower","main.go","mani","map","map,","map.","map[string][]definit","map[string][]str","map[typename]*typ","mean","method","method.","modifi","modifiers.","name","name.","names.","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newcontain","newcontainer(root","nirvana","nirvana.yaml。","object","objectof","objectof(pkg,","offset","on.","openapi","openapi/spec","option","options.","optionsregexp","origin","out","output","overrid","packag","package.","packagecom","packagecomments(path","packages(par","packages.","paramet","parameter.","parameters.","parent","pars","parsecom","parsecomments(com","path","pkgpath","pointer.","pos.","present","printer","produc","produce.","produces.","project","qualifi","reflect.kind","reflect.structtag","regexp.mustcompile(`^[","relat","request.","rest","result","result.","results.","retrun","return","same","sequenc","short","show","slice,","sourc","specifi","stdout","string","string)","string,","struct","struct,","struct.","structfield","succeess","success","summari","swagger","tag","tag.","target","target.","termin","token.pos)","type","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","type为了能让","uintptr","under","uniqu","upper","us","util","valu","value.","values.","var","vendor","version","ways.","whether","within","{","}","中打印表格的功能。","信息的提取。","包","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中,提供了如下功能:","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包则是利用了","包和","包实际上都是利用了","包提供的数据结构生成","包来说就简单很多了,这个包里包含一个","包的","包相对","包读取源码并生成","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于读取项目源码,并生成与","去读取指定路径的源码,然后从中找到标记了","取得返回值,反序列化成","可以读取源码,获取结构对象和注释信息。","后通过","和","在","大部分字段与","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","客户端。","对应","将","执行","接口。swagger","数据。","文件","文档。","文档和客户端。","有关的所有数据结构,产出的结构可用于生成文档和客户端。","来生成","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","用于分析源码的","用于表示代码注释的","的","的定义。","的调用者。这样就完成了对一个项目的","的返回结果,构建出相应的客户端和文档。golang","相关的所有定义和类型信息。api","相关类型:","系列包","系列包包含:","结构,然后再返回给","能转换为可读的数据结构,构建了","读取源码并进行分析,产出","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","选项的注释。两个选项的值对应两个函数,分别返回","除了","集合上述所有功能的","首先会利用"],"topics/command.html":["!=","\"\",","\"boilerplate\",","\"build","\"creat","\"debian:jessie\",","\"docker","\"first","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"imag","\"init","\"nirvana","\"nirvana\",","\"path","\"registries\",","\"runtim","\"v0.1.0\",","\"version\",","&cobra.command{","&initoptions{}","(","(o",")","*cobra.command","*cobra.command)","*cobra.command,","*initoptions)","*pflag.flagset)","//","/path/to/project\",",":=","=","[]string","[]string)","[]string{},","api","api.register(root)","api,用于生成","arg","args);","base","basic","boilerpl","boilerplate\")","build","buildimag","client.register(root)","client,用于生成","cmd","cmd/nirvana","commands.","err","error","flag","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","func","func(cmd","imag","image\",","imageprefix","imagesuffix","import","init","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","instal","install(flag","log.fatalln(err)","long:","main()","main.go","newinitcommand","newinitcommand()","nil","nirvana","option","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","packag","prefix\")","prefix\",","project","project\")","project.register(root)","regist","register(root","registri","registries\")","return","root","root.addcommand(newinitcommand())","root.execute();","run","run(cmd","run:","runtimeimag","short:","string","struct","structure\",","suffix\")","suffix\",","toolchains\",","type","use:","valid","validate(cmd","var","version","{","}","},","一个创建命令的私有函数","一个表示当前命令的所有参数的","中","中,目前包括三个命令:","到命令中","命令","命令为例,说明单个命令的基本结构:","命令对应的包在","基本结构如下:","如果需要新增命令扩展","实现的","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","接下来以","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法用于安装","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","根命令中,比如:","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","然后在","的功能,需要按照上述结构进行开发。","的文件用于把当前的命令加入到","这个包并进行命令注册:"]},"length":40},"tokenStore":{"root":{"0":{"7":{"0":{"2":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292}}},"docs":{}},"docs":{}},"docs":{},";":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"1":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"1":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"0":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"1":{"docs":{},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},".":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"5":{"docs":{},":":{"4":{"7":{"docs":{},":":{"5":{"2":{"docs":{},".":{"0":{"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"4":{"9":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"0":{"docs":{},":":{"5":{"4":{"docs":{},".":{"1":{"5":{"6":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"5":{"docs":{},".":{"6":{"0":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"把":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},".":{"1":{"0":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{}},"9":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"2":{"0":{"0":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},"1":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"2":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331}}},"4":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},"docs":{}},"2":{"9":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"7":{"7":{"4":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"3":{"docs":{},".":{"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"3":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"3":{"0":{"0":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"4":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"4":{"0":{"4":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"9":{"1":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"5":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"5":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"8":{"4":{"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"6":{"5":{"8":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"7":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"5":{"docs":{},".":{"1":{"0":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"7":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"8":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"9":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"6":{"docs":{},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"7":{"1":{"6":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"2":{"3":{"1":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.04849884526558892}}}},"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}},"docs":{}},"docs":{}},"7":{"2":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"8":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"8":{"0":{"8":{"0":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"docs":{}},"docs":{}},"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"9":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"9":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"]":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.06666666666666667},"guides/project.html":{"ref":"guides/project.html","tf":0.035897435897435895},"guides/api.html":{"ref":"guides/api.html","tf":10.038535645472061},"guides/doc.html":{"ref":"guides/doc.html","tf":3.442708333333333},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/version.html":{"ref":"plugins/version.html","tf":0.05},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555},"topics/start.html":{"ref":"topics/start.html","tf":0.046875},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.033444816053511704},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},":":{"1":{"7":{"9":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"8":{"7":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"9":{"5":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"服":{"docs":{},"务":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"接":{"docs":{},"入":{"docs":{},"其":{"docs":{},"他":{"docs":{},"日":{"docs":{},"志":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"m":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"e":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.026234567901234566}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"d":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"b":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"o":{"docs":{},"v":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.06666666666666667},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"v":{"docs":{},"i":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"@":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{},"{":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},",":{"docs":{},"两":{"docs":{},"者":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":5.08235294117647},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}},":":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.3333333333333333},"guides/project.html":{"ref":"guides/project.html","tf":0.03076923076923077},"guides/api.html":{"ref":"guides/api.html","tf":0.025048169556840076},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.0380952380952381},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0392156862745098},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.03271028037383177},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0859375},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":10.02572347266881},"topics/config.html":{"ref":"topics/config.html","tf":0.021604938271604937},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.16666666666666666},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.06896551724137931},"plugins/version.html":{"ref":"plugins/version.html","tf":0.15},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.08333333333333333}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"服":{"docs":{},"务":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"y":{"docs":{},"@":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702}}},"s":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"e":{"docs":{},"w":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"4":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"2":{"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"3":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"5":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}},"e":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"与":{"docs":{},"其":{"docs":{},"他":{"docs":{},"普":{"docs":{},"通":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"此":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"和":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"都":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"侵":{"docs":{},"入":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"作":{"docs":{},"出":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"应":{"docs":{},"当":{"docs":{},"以":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"包":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"增":{"docs":{},"强":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"设":{"docs":{},"计":{"docs":{},"上":{"docs":{},"与":{"docs":{},"现":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"心":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"过":{"docs":{},"程":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"层":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"层":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"含":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"发":{"docs":{},"布":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"修":{"docs":{},"改":{"docs":{},"并":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"场":{"docs":{},"景":{"docs":{},"中":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"除":{"docs":{},"了":{"docs":{},"正":{"docs":{},"常":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"各":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"到":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},",":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"没":{"docs":{},"有":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"整":{"docs":{},"个":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"源":{"docs":{},"头":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"公":{"docs":{},"共":{"docs":{},"的":{"docs":{},"网":{"docs":{},"关":{"docs":{},"进":{"docs":{},"行":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"对":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"整":{"docs":{},"合":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"涵":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"过":{"docs":{},"程":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"导":{"docs":{},"致":{"docs":{},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"引":{"docs":{},"用":{"docs":{},"各":{"docs":{},"种":{"docs":{},"各":{"docs":{},"样":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"综":{"docs":{},"合":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{},"该":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"每":{"docs":{},"个":{"docs":{},"包":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"主":{"docs":{},"要":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"额":{"docs":{},"外":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"这":{"docs":{},"些":{"docs":{},"组":{"docs":{},"件":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"计":{"docs":{},"理":{"docs":{},"念":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"会":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"通":{"docs":{},"常":{"docs":{},"足":{"docs":{},"够":{"docs":{},"使":{"docs":{},"用":{"docs":{},"者":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"间":{"docs":{},"也":{"docs":{},"会":{"docs":{},"存":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"速":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"件":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"中":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"是":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"一":{"docs":{},"个":{"docs":{},"着":{"docs":{},"重":{"docs":{},"于":{"docs":{},"提":{"docs":{},"高":{"docs":{},"开":{"docs":{},"发":{"docs":{},"效":{"docs":{},"率":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}},"短":{"docs":{},"语":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"指":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"验":{"docs":{},"证":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"否":{"docs":{},"由":{"docs":{},"这":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"包":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"负":{"docs":{},"责":{"docs":{},"日":{"docs":{},"志":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"处":{"docs":{},"理":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}},"由":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"而":{"docs":{},"不":{"docs":{},"由":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"让":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{},"框":{"docs":{},"架":{"docs":{},"隔":{"docs":{},"离":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"处":{"docs":{},"于":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"设":{"docs":{},"计":{"docs":{},"核":{"docs":{},"心":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},":":{"docs":{},"隔":{"docs":{},"离":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"概":{"docs":{},"览":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"概":{"docs":{},"览":{"docs":{"./":{"ref":"./","tf":10}}},"念":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"各":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"也":{"docs":{},"是":{"docs":{},"依":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"和":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"该":{"docs":{},"请":{"docs":{},"求":{"docs":{},"还":{"docs":{},"是":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"数":{"docs":{},"据":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"包":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"忽":{"docs":{},"略":{"docs":{},"所":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"通":{"docs":{},"常":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"为":{"docs":{},"了":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"来":{"docs":{},"共":{"docs":{},"同":{"docs":{},"标":{"docs":{},"识":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"框":{"docs":{},"架":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{},"。":{"docs":{},"下":{"docs":{},"表":{"docs":{},"中":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"用":{"docs":{},"途":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"这":{"docs":{},"个":{"docs":{},"短":{"docs":{},"语":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}},"户":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"会":{"docs":{},"递":{"docs":{},"归":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"以":{"docs":{},"寻":{"docs":{},"找":{"docs":{},"带":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},",":{"docs":{},"与":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"字":{"docs":{},"段":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"调":{"docs":{},"换":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"工":{"docs":{},"具":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"注":{"docs":{},"册":{"docs":{},"方":{"docs":{},"法":{"docs":{},"即":{"docs":{},"可":{"docs":{},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"与":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"式":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"最":{"docs":{},"小":{"docs":{},"值":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"路":{"docs":{},"径":{"docs":{},"上":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"数":{"docs":{},"据":{"docs":{},"来":{"docs":{},"源":{"docs":{},"都":{"docs":{},"是":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"添":{"docs":{},"加":{"docs":{},"上":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"都":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"满":{"docs":{},"足":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"表":{"docs":{},"达":{"docs":{},"性":{"docs":{},"很":{"docs":{},"差":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"全":{"docs":{},"局":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"性":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"作":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"错":{"docs":{},"误":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"动":{"docs":{},"态":{"docs":{},"函":{"docs":{},"数":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"真":{"docs":{},"正":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"里":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"方":{"docs":{},"便":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"顶":{"docs":{},"级":{"docs":{},"包":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"其":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"包":{"docs":{},"只":{"docs":{},"来":{"docs":{},"自":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}},"填":{"docs":{},"充":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"除":{"docs":{},"了":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"述":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"把":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"\"":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"docs":{}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"n":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"\"":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"s":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"m":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"h":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"i":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"#":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.12307692307692308}}},"$":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.028205128205128206},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/start.html":{"ref":"topics/start.html","tf":0.03125}},"g":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"/":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"{":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},".":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"1":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"docs":{}}},".":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.0380952380952381},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"*":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"/":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"/":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},":":{"docs":{},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"docs":{}}}}}}},"/":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.05009633911368015},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.09056603773584905},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.05952380952380952},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.047619047619047616},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.04938271604938271},"concepts/context.html":{"ref":"concepts/context.html","tf":0.09289617486338798},"concepts/source.html":{"ref":"concepts/source.html","tf":0.058823529411764705},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.09326424870466321},"concepts/error.html":{"ref":"concepts/error.html","tf":0.03139013452914798},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.0794392523364486},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.024464831804281346},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.04838709677419355},"topics/log.html":{"ref":"topics/log.html","tf":0.11611374407582939},"topics/errors.html":{"ref":"topics/errors.html","tf":0.10392609699769054},"topics/definition.html":{"ref":"topics/definition.html","tf":0.12545126353790614},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.10457516339869281},"topics/router.html":{"ref":"topics/router.html","tf":0.07508532423208192},"topics/service.html":{"ref":"topics/service.html","tf":0.08742514970059881},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.08681672025723473},"topics/config.html":{"ref":"topics/config.html","tf":0.10802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.07272727272727272},"topics/utils.html":{"ref":"topics/utils.html","tf":0.09810479375696766},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"z":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"重":{"docs":{},"定":{"docs":{},"向":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"就":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"2":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"/":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}},"docs":{}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.10344827586206896}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"=":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422},"topics/definition.html":{"ref":"topics/definition.html","tf":0.026173285198555957},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.018475750577367205},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}},"y":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"o":{"docs":{},"l":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.03278688524590164},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"i":{"docs":{},"e":{"docs":{},"f":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"d":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/start.html":{"ref":"topics/start.html","tf":0.015625}}},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/command.html":{"ref":"topics/command.html","tf":10.004201680672269}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05963302752293578},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},")":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"x":{"docs":{},"t":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":10.010928961748634},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809}},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"u":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"2":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},")":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.384009009009009},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.049019607843137254},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.06542056074766354},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":10.01388888888889},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.14705882352941177},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01929260450160772},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},":":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"b":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},":":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"d":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"s":{"docs":{},".":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"i":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},"}":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}}},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"注":{"docs":{},"释":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"要":{"docs":{},"对":{"docs":{},"注":{"docs":{},"释":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"注":{"docs":{},"释":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"a":{"docs":{},"m":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.042483660130718956},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}}}}}}}}}}}}},"v":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.027707808564231738},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168}},":":{"1":{"0":{"6":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}},"7":{"3":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"8":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"g":{"docs":{},"o":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"而":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}},"s":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.02287581699346405}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.037037037037037035},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"e":{"docs":{},"r":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"f":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"g":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364}},")":{"docs":{},"`":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.015414258188824663},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.12380952380952381},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/definition.html":{"ref":"topics/definition.html","tf":10.016245487364621},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"2":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"docs":{}},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"开":{"docs":{},"发":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"会":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"则":{"docs":{},"是":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/method.html":{"ref":"topics/method.html","tf":10}}}}}}}}},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"=":{"docs":{},"{":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"(":{"docs":{},")":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"然":{"docs":{},"后":{"docs":{},"动":{"docs":{},"态":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}},":":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682}}}}},"i":{"docs":{},"d":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.010362694300518},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"a":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"c":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"n":{"docs":{},"e":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}},"'":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"docs":{}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"b":{"docs":{},"e":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"r":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02702702702702703},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446}},"o":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.07623318385650224},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":10.057736720554272},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.013207547169811321},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"s":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"比":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"多":{"docs":{},"出":{"docs":{},"更":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05045871559633028},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},"u":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"e":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},",":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"则":{"docs":{},"认":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"。":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":10.119047619047619},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/utils.html":{"ref":"topics/utils.html","tf":0.020066889632107024}},"a":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"b":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"x":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}}}}}},"o":{"docs":{},"m":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"k":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"u":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.020151133501259445},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.052830188679245285},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.037383177570093455},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0375},"topics/validator.html":{"ref":"topics/validator.html","tf":0.049019607843137254},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.02572347266881029},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.04},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"c":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"d":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}},"l":{"docs":{},"l":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},":":{"docs":{},".":{"docs":{},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"*":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.02771362586605081}}},"y":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}},"。":{"docs":{},"也":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"类":{"docs":{},"表":{"docs":{},"示":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}},"s":{"docs":{},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"通":{"docs":{},"过":{"docs":{},"外":{"docs":{},"部":{"docs":{},"选":{"docs":{},"项":{"docs":{},"来":{"docs":{},"改":{"docs":{},"变":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"docs":{}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},"f":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}},"l":{"docs":{},"n":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}}}}}}}}}}}}},")":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"(":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"l":{"docs":{},"d":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.010256410256410256},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.02185792349726776},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01818181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"/":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"得":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"1":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"u":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"2":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"2":{"0":{"4":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"(":{"2":{"0":{"0":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"请":{"docs":{},"求":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}},"。":{"docs":{},"如":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"您":{"docs":{},"明":{"docs":{},"确":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"l":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"`":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"e":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.025906735751295335},"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.0880829015544045},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"s":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"这":{"docs":{},"些":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"同":{"docs":{},"等":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"闭":{"docs":{},"包":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364}}}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"必":{"docs":{},"要":{"docs":{},"文":{"docs":{},"件":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{}},"3":{"2":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.01437125748502994},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"n":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}},"f":{"docs":{},"o":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}},"r":{"docs":{},"m":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"|":{"docs":{},"l":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}},"(":{"docs":{},"i":{"docs":{},"p":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"k":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"g":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":10.045023696682465}},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.023696682464454975}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.018957345971563982},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"l":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"输":{"docs":{},"出":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985}}}}},"o":{"docs":{},"k":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"w":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"k":{"docs":{},"e":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}},"e":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"会":{"docs":{},"写":{"docs":{},"入":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"]":{"docs":{},"*":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"h":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"3":{"2":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"docs":{}},"docs":{}}}}}}}}}},"n":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/error.html":{"ref":"concepts/error.html","tf":0.017937219730941704},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01607717041800643},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"a":{"docs":{},"n":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"d":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":10.024691358024691},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"x":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":10.095238095238095},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"e":{"docs":{},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"r":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693}},":":{"docs":{},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"docs":{}}},"docs":{}}},"docs":{}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"l":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"k":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"k":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.03125},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}}}}}}}},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"a":{"docs":{},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":10.095238095238095},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}},"启":{"docs":{},"用":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"名":{"docs":{},"称":{"docs":{},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.377252252252252},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"(":{"docs":{},"w":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"他":{"docs":{},"们":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"和":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406}},"s":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"x":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":5.011764705882353},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"s":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"o":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"u":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/method.html":{"ref":"topics/method.html","tf":0.05660377358490566}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"a":{"docs":{},"y":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}},".":{"docs":{},"v":{"9":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}},"s":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}},"e":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"判":{"docs":{},"断":{"docs":{},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},".":{"docs":{},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"`":{"docs":{},"^":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"o":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"r":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"q":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.03571428571428571},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.025454545454545455}},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{},"可":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/rest.html":{"ref":"topics/rest.html","tf":10.018181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.020754716981132074},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.04918032786885246},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.027544910179640718},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.032407407407407406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"l":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"=":{"docs":{},"\"":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},"\"":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":10.009580838323354},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"e":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":10}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"n":{"docs":{},"s":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.016587677725118485}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"。":{"docs":{},"值":{"docs":{},"使":{"docs":{},"用":{"docs":{},"逗":{"docs":{},"号":{"docs":{},"分":{"docs":{},"隔":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"参":{"docs":{},"数":{"docs":{},"来":{"docs":{},"源":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"表":{"docs":{},"示":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"(":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"a":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},".":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"t":{"docs":{},"u":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.016339869281045753},"topics/router.html":{"ref":"topics/router.html","tf":0.034129692832764506},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.026415094339622643},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.125},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.014492753623188406},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"{":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},"y":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"b":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"v":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673}},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"h":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},"w":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"u":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.005128205128205128}},"s":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"a":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"r":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"docs":{}},"3":{"2":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":10.002229654403568}}}}}},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.017948717948717947},"guides/client.html":{"ref":"guides/client.html","tf":0.022670025188916875},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"2":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"a":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.04150943396226415},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.1503267973856209},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"u":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/config.html":{"ref":"topics/config.html","tf":0.035493827160493825},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"是":{"docs":{},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"a":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"│":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.11025641025641025},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.038461538461538464},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.04358974358974359},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}}}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"是":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"样":{"docs":{},"板":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"如":{"docs":{},"何":{"docs":{},"放":{"docs":{},"到":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"表":{"docs":{},"现":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"每":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"直":{"docs":{},"接":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"位":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"与":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}},"添":{"docs":{},"加":{"docs":{},"在":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}},"携":{"docs":{},"带":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"也":{"docs":{},"经":{"docs":{},"常":{"docs":{},"看":{"docs":{},"到":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"组":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"是":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"任":{"docs":{},"何":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"目":{"docs":{},"前":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"添":{"docs":{},"加":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"为":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"径":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"时":{"docs":{},"不":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},"包":{"docs":{},"含":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"实":{"docs":{},"例":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"传":{"docs":{},"递":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"的":{"docs":{},"公":{"docs":{},"开":{"docs":{},"字":{"docs":{},"段":{"docs":{},"根":{"docs":{},"据":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"规":{"docs":{},"则":{"docs":{},"参":{"docs":{},"考":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},")":{"docs":{},"从":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"印":{"docs":{},"表":{"docs":{},"格":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"为":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"所":{"docs":{},"有":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.047619047619047616}},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"演":{"docs":{},"示":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"构":{"docs":{},"建":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"端":{"docs":{},"口":{"docs":{},"是":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"设":{"docs":{},"置":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"读":{"docs":{},"取":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"从":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"显":{"docs":{},"得":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"上":{"docs":{},"所":{"docs":{},"有":{"docs":{},"节":{"docs":{},"点":{"docs":{},"按":{"docs":{},"照":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"串":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"并":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"上":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"由":{"docs":{},"命":{"docs":{},"令":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"修":{"docs":{},"改":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"前":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},",":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"时":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"非":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{},"里":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"安":{"docs":{},"装":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},"自":{"docs":{},"带":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"账":{"docs":{},"户":{"docs":{},"下":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"下":{"docs":{},"载":{"docs":{},"源":{"docs":{},"码":{"docs":{},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"开":{"docs":{},"发":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"会":{"docs":{},"打":{"docs":{},"印":{"docs":{},"出":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"用":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"或":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"双":{"docs":{},"重":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"即":{"docs":{},"请":{"docs":{},"求":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"结":{"docs":{},"束":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"示":{"docs":{},"源":{"docs":{},"地":{"docs":{},"址":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"向":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"启":{"docs":{},"动":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"编":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"单":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"包":{"docs":{},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007692307692307693},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.05405405405405406},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"一":{"docs":{},"个":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"插":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"是":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"配":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},",":{"docs":{},"为":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"如":{"docs":{},"果":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"命":{"docs":{},"令":{"docs":{},"扩":{"docs":{},"展":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"类":{"docs":{},"型":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}}},"以":{"docs":{},"下":{"docs":{},"路":{"docs":{},"径":{"docs":{},"都":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"正":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"希":{"docs":{},"望":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"读":{"docs":{},"取":{"docs":{},"到":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"下":{"docs":{},":":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"字":{"docs":{},"段":{"docs":{},"无":{"docs":{},"效":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"进":{"docs":{},"行":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"在":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"必":{"docs":{},"须":{"docs":{},"与":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"存":{"docs":{},"放":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.015384615384615385}},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"启":{"docs":{},"动":{"docs":{},"命":{"docs":{},"令":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"在":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}},"再":{"docs":{},"对":{"docs":{},"应":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"更":{"docs":{},"加":{"docs":{},"明":{"docs":{},"确":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"根":{"docs":{},"据":{"docs":{},"场":{"docs":{},"景":{"docs":{},"确":{"docs":{},"定":{"docs":{},"使":{"docs":{},"用":{"docs":{},"哪":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"的":{"docs":{},"可":{"docs":{},"读":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"无":{"docs":{},"关":{"docs":{},"性":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"不":{"docs":{},"能":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"任":{"docs":{},"何":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"上":{"docs":{},"添":{"docs":{},"加":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"之":{"docs":{},"后":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"在":{"docs":{},"容":{"docs":{},"器":{"docs":{},"内":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"打":{"docs":{},"包":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"看":{"docs":{},"到":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"无":{"docs":{},"效":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"错":{"docs":{},"误":{"docs":{},"能":{"docs":{},"够":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"或":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"域":{"docs":{},"名":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"与":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},"打":{"docs":{},"包":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"符":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"构":{"docs":{},"建":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"服":{"docs":{},"务":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"只":{"docs":{},"能":{"docs":{},"填":{"docs":{},"写":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"打":{"docs":{},"开":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"因":{"docs":{},"此":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"启":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"性":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"路":{"docs":{},"径":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"则":{"docs":{},"根":{"docs":{},"据":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"一":{"docs":{},"段":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"限":{"docs":{},"制":{"docs":{},":":{"docs":{},"只":{"docs":{},"能":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"确":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"此":{"docs":{},"时":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"每":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"服":{"docs":{},"务":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"份":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{},"在":{"docs":{},"一":{"docs":{},"起":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"内":{"docs":{},"容":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"互":{"docs":{},"相":{"docs":{},"之":{"docs":{},"间":{"docs":{},"不":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}},"比":{"docs":{},"如":{"docs":{},"设":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"命":{"docs":{},"令":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"演":{"docs":{},"示":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":10.025}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"规":{"docs":{},"则":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"识":{"docs":{},"别":{"docs":{},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"签":{"docs":{},"名":{"docs":{},"没":{"docs":{},"有":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"暴":{"docs":{},"露":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"服":{"docs":{},"务":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"常":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"合":{"docs":{},"并":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"真":{"docs":{},"正":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"分":{"docs":{},"析":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"表":{"docs":{},"示":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"前":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"还":{"docs":{},"不":{"docs":{},"完":{"docs":{},"善":{"docs":{},",":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"对":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"编":{"docs":{},"译":{"docs":{},"并":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"写":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"范":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}},"路":{"docs":{},"径":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"。":{"docs":{},"为":{"docs":{},"空":{"docs":{},"时":{"docs":{},"不":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"替":{"docs":{},"换":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"版":{"docs":{},"本":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"程":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"声":{"docs":{},"明":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"本":{"docs":{},"地":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"包":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"之":{"docs":{},"后":{"docs":{},"则":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},",":{"docs":{},"并":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.05714285714285714}},"字":{"docs":{},"段":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"替":{"docs":{},"换":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"空":{"docs":{},"格":{"docs":{},"后":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"这":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"是":{"docs":{},"有":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"工":{"docs":{},"具":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"判":{"docs":{},"断":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808}}}},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}},"插":{"docs":{},"件":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"三":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},":":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"包":{"docs":{},"方":{"docs":{},"便":{"docs":{},"了":{"docs":{},"用":{"docs":{},"户":{"docs":{},"创":{"docs":{},"建":{"docs":{},"能":{"docs":{},"够":{"docs":{},"被":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"分":{"docs":{},"离":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"对":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"用":{"docs":{},"特":{"docs":{},"例":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"快":{"docs":{},"速":{"docs":{},"进":{"docs":{},"行":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"添":{"docs":{},"加":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"以":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"就":{"docs":{},"表":{"docs":{},"示":{"docs":{},"文":{"docs":{},"档":{"docs":{},"生":{"docs":{},"成":{"docs":{},"成":{"docs":{},"功":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"够":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"都":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"套":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"器":{"docs":{},"机":{"docs":{},"制":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":10.009803921568627}}}}},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}},"镜":{"docs":{},"像":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}},"。":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}},"[":{"docs":{},":":{"docs":{},"模":{"docs":{},"块":{"docs":{},"名":{"docs":{},"]":{"docs":{},":":{"docs":{},"错":{"docs":{},"误":{"docs":{},"名":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"目":{"docs":{},"录":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}}}},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":10.002564102564103}}}}}}}},"负":{"docs":{},"责":{"docs":{},"人":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}}}},"配":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.002564102564102564}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"}":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"{":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}}}}}}}},"&":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.333333333333333}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"{":{"docs":{},"}":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"(":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"*":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"t":{"docs":{},"x":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"m":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},"docs":{}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"b":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},":":{"docs":{},"=":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}}}},"[":{"5":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"f":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"{":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"*":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},"`":{"docs":{},"/":{"docs":{},"`":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}},"t":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/config.html":{"ref":"topics/config.html","tf":0.043209876543209874},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}}},"y":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"k":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.018867924528301886},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.06735751295336788},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.02888086642599278},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.05},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.030716723549488054},"topics/service.html":{"ref":"topics/service.html","tf":0.03592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.046822742474916385},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"s":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}}}}},":":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"让":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"设":{"docs":{},"置":{"docs":{},"当":{"docs":{},"前":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"r":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"r":{"docs":{},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"y":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.037815126050420166}},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"}":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.017341040462427744},"guides/client.html":{"ref":"guides/client.html","tf":0.04534005037783375},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.04201680672268908}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}},"与":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"名":{"docs":{},"称":{"docs":{},"无":{"docs":{},"关":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"类":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"任":{"docs":{},"何":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"件":{"docs":{},"事":{"docs":{},"情":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"上":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"外":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"十":{"docs":{},"分":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"设":{"docs":{},"置":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"取":{"docs":{},"得":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"中":{"docs":{},"确":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"使":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"始":{"docs":{},"终":{"docs":{},"建":{"docs":{},"议":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"这":{"docs":{},"样":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"时":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"等":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"呈":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"作":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{},"一":{"docs":{},"旦":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"即":{"docs":{},"使":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"发":{"docs":{},"生":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"加":{"docs":{},"载":{"docs":{},"时":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"例":{"docs":{},"值":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"意":{"docs":{},"义":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"值":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"放":{"docs":{},"到":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"放":{"docs":{},"置":{"docs":{},"到":{"docs":{},"全":{"docs":{},"局":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"成":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"删":{"docs":{},"除":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"参":{"docs":{},"数":{"docs":{},"值":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"当":{"docs":{},"前":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"定":{"docs":{},"义":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"考":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"既":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"里":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"通":{"docs":{},"过":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}},"构":{"docs":{},"建":{"docs":{},"带":{"docs":{},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"在":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"结":{"docs":{},"构":{"docs":{},"对":{"docs":{},"象":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"使":{"docs":{},"用":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"被":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"名":{"docs":{},"称":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"因":{"docs":{},"为":{"docs":{},"只":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"始":{"docs":{},"终":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"。":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"错":{"docs":{},"误":{"docs":{},"仅":{"docs":{},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"异":{"docs":{},"步":{"docs":{},"修":{"docs":{},"改":{"docs":{},"资":{"docs":{},"源":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"删":{"docs":{},"除":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"发":{"docs":{},"出":{"docs":{},"后":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"是":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"加":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"或":{"docs":{},"者":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"供":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"后":{"docs":{},"续":{"docs":{},"查":{"docs":{},"询":{"docs":{},"请":{"docs":{},"求":{"docs":{},"执":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"就":{"docs":{},"要":{"docs":{},"求":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"必":{"docs":{},"须":{"docs":{},"放":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"功":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"以":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"口":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"即":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"如":{"docs":{},"果":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"征":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"携":{"docs":{},"带":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"关":{"docs":{},"于":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"现":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"跟":{"docs":{},"踪":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},":":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"显":{"docs":{},"式":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"收":{"docs":{},"配":{"docs":{},"置":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"些":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"方":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"下":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"据":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"方":{"docs":{},"法":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"比":{"docs":{},"如":{"docs":{},"某":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"包":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":10.004587155963304}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"就":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"都":{"docs":{},"是":{"docs":{},"语":{"docs":{},"义":{"docs":{},"层":{"docs":{},"面":{"docs":{},"的":{"docs":{},",":{"docs":{},"为":{"docs":{},"的":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"得":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}},"一":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"二":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"对":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"直":{"docs":{},"接":{"docs":{},"创":{"docs":{},"建":{"docs":{},"出":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"安":{"docs":{},"装":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"验":{"docs":{},"证":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"种":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"插":{"docs":{},"件":{"docs":{},"允":{"docs":{},"许":{"docs":{},"插":{"docs":{},"件":{"docs":{},"设":{"docs":{},"置":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"无":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"时":{"docs":{},"候":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"不":{"docs":{},"能":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"多":{"docs":{},"个":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"资":{"docs":{},"源":{"docs":{},"唯":{"docs":{},"一":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"添":{"docs":{},"加":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353}},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"匹":{"docs":{},"配":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}},"到":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"类":{"docs":{},"型":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"名":{"docs":{},"称":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"一":{"docs":{},"般":{"docs":{},"不":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"被":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"变":{"docs":{},"成":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"组":{"docs":{},"合":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"具":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"列":{"docs":{},"表":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"里":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":10.023809523809524}},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"追":{"docs":{},"踪":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":10.016129032258064}},"基":{"docs":{},"于":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"返":{"docs":{},"回":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"自":{"docs":{},"动":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"的":{"docs":{},"是":{"docs":{},"资":{"docs":{},"源":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"回":{"docs":{},"去":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"是":{"docs":{},"否":{"docs":{},"健":{"docs":{},"康":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"出":{"docs":{},"去":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"描":{"docs":{},"述":{"docs":{},"的":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"决":{"docs":{},"定":{"docs":{},"请":{"docs":{},"求":{"docs":{},"是":{"docs":{},"否":{"docs":{},"继":{"docs":{},"续":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"提":{"docs":{},"供":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}},"任":{"docs":{},"何":{"docs":{},"更":{"docs":{},"新":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},"工":{"docs":{},"具":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"两":{"docs":{},"个":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"正":{"docs":{},"确":{"docs":{},"层":{"docs":{},"级":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"业":{"docs":{},"务":{"docs":{},"有":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"包":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"退":{"docs":{},"出":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"些":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}},"了":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"遵":{"docs":{},"守":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"里":{"docs":{},"取":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"的":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"文":{"docs":{},"本":{"docs":{},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"链":{"docs":{},"接":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":10.004484304932735}}}}},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"在":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"生":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"四":{"docs":{},"个":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"了":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"路":{"docs":{},"径":{"docs":{},"为":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":10.030188679245283},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01444043321299639},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"s":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":10}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":10}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"(":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}},"。":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/config.html":{"ref":"topics/config.html","tf":0.020061728395061727},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"m":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"u":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.016981132075471698},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"o":{"docs":{},"f":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"v":{"2":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"docs":{}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"e":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}}}},"docs":{}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"|":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102}}},"公":{"docs":{},"开":{"docs":{},"给":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}},"共":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"构":{"docs":{},"建":{"docs":{},",":{"docs":{},"而":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"查":{"docs":{},"看":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"成":{"docs":{},"为":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"且":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"一":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"从":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{},"之":{"docs":{},"前":{"docs":{},"让":{"docs":{},"用":{"docs":{},"户":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"而":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"生":{"docs":{},"成":{"docs":{},"服":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"一":{"docs":{},"些":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"交":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"代":{"docs":{},"码":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":10.002518891687657},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"是":{"docs":{},"版":{"docs":{},"本":{"docs":{},"化":{"docs":{},"的":{"docs":{},",":{"docs":{},"版":{"docs":{},"本":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"两":{"docs":{},"者":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"新":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},",":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"器":{"docs":{},"这":{"docs":{},"个":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"特":{"docs":{},"定":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"而":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"读":{"docs":{},"基":{"docs":{},"本":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"则":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"效":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"对":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"端":{"docs":{},"口":{"docs":{},"提":{"docs":{},"供":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"防":{"docs":{},"止":{"docs":{},"端":{"docs":{},"口":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"名":{"docs":{},"称":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"该":{"docs":{},"命":{"docs":{},"令":{"docs":{},"不":{"docs":{},"会":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"输":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"日":{"docs":{},"志":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"会":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"!":{"docs":{},"=":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.03536977491961415},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}}}}}}}}}},"v":{"1":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}},"/":{"docs":{},"*":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},".":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"范":{"docs":{},"例":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"比":{"docs":{},"较":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"来":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":10.003058103975535}},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"尚":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},")":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"指":{"docs":{},"定":{"docs":{},"其":{"docs":{},"他":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"良":{"docs":{},"好":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"以":{"docs":{},"供":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"限":{"docs":{},"制":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"x":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"m":{"docs":{},"l":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"取":{"docs":{},"得":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"会":{"docs":{},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"框":{"docs":{},"架":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"在":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"就":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"这":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"还":{"docs":{},"有":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"些":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"私":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"插":{"docs":{},"件":{"docs":{},"应":{"docs":{},"该":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"件":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"则":{"docs":{},"负":{"docs":{},"责":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"转":{"docs":{},"换":{"docs":{},"等":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"更":{"docs":{},"加":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"化":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"被":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"由":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"注":{"docs":{},"册":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"包":{"docs":{},"装":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"一":{"docs":{},"组":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"个":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"用":{"docs":{},"于":{"docs":{},"校":{"docs":{},"验":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"方":{"docs":{},"法":{"docs":{},"注":{"docs":{},"册":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"进":{"docs":{},"行":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"包":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"是":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"插":{"docs":{},"件":{"docs":{},"能":{"docs":{},"力":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}},"括":{"docs":{},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"占":{"docs":{},"位":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"值":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"对":{"docs":{},"应":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"分":{"docs":{},"离":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"基":{"docs":{},"础":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"共":{"docs":{},"工":{"docs":{},"具":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{},"采":{"docs":{},"集":{"docs":{},"端":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"包":{"docs":{},"含":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"多":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"基":{"docs":{},"于":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"际":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"如":{"docs":{},"下":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"的":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"之":{"docs":{},"所":{"docs":{},"以":{"docs":{},"不":{"docs":{},"复":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"类":{"docs":{},"型":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"稍":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"包":{"docs":{},"含":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"进":{"docs":{},"行":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"路":{"docs":{},"由":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"和":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"其":{"docs":{},"他":{"docs":{},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"的":{"docs":{},"包":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"借":{"docs":{},"助":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}},"会":{"docs":{},"从":{"docs":{},"以":{"docs":{},"下":{"docs":{},"文":{"docs":{},"件":{"docs":{},"列":{"docs":{},"表":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"包":{"docs":{},"都":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"简":{"docs":{},"单":{"docs":{},"很":{"docs":{},"多":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"里":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"去":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"名":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"际":{"docs":{},"上":{"docs":{},"要":{"docs":{},"填":{"docs":{},"写":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"只":{"docs":{},"与":{"docs":{},"自":{"docs":{},"身":{"docs":{},"业":{"docs":{},"务":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"例":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"将":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"它":{"docs":{},"的":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"写":{"docs":{},"入":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"找":{"docs":{},"到":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"才":{"docs":{},"算":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},":":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"包":{"docs":{},"里":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"户":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"上":{"docs":{},"每":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"都":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"注":{"docs":{},"册":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"空":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"身":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"快":{"docs":{},"速":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"过":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},"指":{"docs":{},"定":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"常":{"docs":{},"规":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{},"签":{"docs":{},"名":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"尾":{"docs":{},"部":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"收":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"用":{"docs":{},"于":{"docs":{},"单":{"docs":{},"独":{"docs":{},"配":{"docs":{},"置":{"docs":{},"每":{"docs":{},"一":{"docs":{},"项":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}},"首":{"docs":{},"部":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"看":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"本":{"docs":{},"身":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"确":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"处":{"docs":{},"理":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"启":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"将":{"docs":{},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"用":{"docs":{},"于":{"docs":{},"接":{"docs":{},"收":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"(":{"docs":{},"都":{"docs":{},"是":{"docs":{},"指":{"docs":{},"针":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"值":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"下":{"docs":{},"查":{"docs":{},"看":{"docs":{},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}},"面":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"来":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"一":{"docs":{},"些":{"docs":{},"附":{"docs":{},"加":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},">":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"且":{"docs":{},"成":{"docs":{},"功":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"按":{"docs":{},"照":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{},"链":{"docs":{},"继":{"docs":{},"续":{"docs":{},"传":{"docs":{},"递":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"经":{"docs":{},"由":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"去":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"才":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"而":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}},"负":{"docs":{},"责":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"大":{"docs":{},"致":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},"并":{"docs":{},"不":{"docs":{},"足":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},"繁":{"docs":{},"复":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}},"视":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"大":{"docs":{},"类":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"带":{"docs":{},"有":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"资":{"docs":{},"源":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"或":{"docs":{},"者":{"docs":{},"找":{"docs":{},"不":{"docs":{},"到":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"大":{"docs":{},"类":{"docs":{},"下":{"docs":{},"定":{"docs":{},"义":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"他":{"docs":{},"与":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"具":{"docs":{},"体":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"证":{"docs":{},"书":{"docs":{},"和":{"docs":{},"密":{"docs":{},"钥":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"机":{"docs":{},"制":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":10.004672897196262}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"整":{"docs":{},"合":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"区":{"docs":{},"别":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"统":{"docs":{},"一":{"docs":{},"网":{"docs":{},"关":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"暴":{"docs":{},"露":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"模":{"docs":{},"式":{"docs":{},"后":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":10.014492753623188}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"伪":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"按":{"docs":{},"照":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}},"列":{"docs":{},"包":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"包":{"docs":{},"含":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"上":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"打":{"docs":{},"印":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"。":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"提":{"docs":{},"取":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"监":{"docs":{},"控":{"docs":{},"指":{"docs":{},"标":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":10.027027027027026}},"基":{"docs":{},"于":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"采":{"docs":{},"集":{"docs":{},"指":{"docs":{},"标":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"的":{"docs":{},"提":{"docs":{},"取":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"前":{"docs":{},"缀":{"docs":{},"路":{"docs":{},"径":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}},"性":{"docs":{},"能":{"docs":{},"分":{"docs":{},"析":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":10.03448275862069}},"添":{"docs":{},"加":{"docs":{},"与":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"值":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}}}}}}}},"健":{"docs":{},"康":{"docs":{},"检":{"docs":{},"查":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":10.027777777777779}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}},"应":{"docs":{},"该":{"docs":{},"返":{"docs":{},"回":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":10.0078125}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"从":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"增":{"docs":{},"加":{"docs":{},"相":{"docs":{},"应":{"docs":{},"字":{"docs":{},"段":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"应":{"docs":{},"该":{"docs":{},"使":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"另":{"docs":{},"外":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"大":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{},"即":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"字":{"docs":{},"段":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"具":{"docs":{},"介":{"docs":{},"绍":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"持":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"变":{"docs":{},"更":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"标":{"docs":{},"准":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"识":{"docs":{},"别":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"中":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"引":{"docs":{},"入":{"docs":{},"对":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"容":{"docs":{},"器":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"和":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"验":{"docs":{},"证":{"docs":{},"方":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"这":{"docs":{},"些":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"z":{"docs":{},"]":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"*":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"正":{"docs":{},"则":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"余":{"docs":{},"路":{"docs":{},"径":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"完":{"docs":{},"成":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"也":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"就":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"掉":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"↑":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293}}},"↓":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497}}},"处":{"docs":{},"理":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"等":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"还":{"docs":{},"会":{"docs":{},"将":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"针":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"是":{"docs":{},"针":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"p":{"docs":{},"'":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"了":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"于":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"要":{"docs":{},"求":{"docs":{},"每":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"用":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\\":{"docs":{},"t":{"docs":{},"]":{"docs":{},"*":{"docs":{},"=":{"docs":{},"(":{"docs":{},".":{"docs":{},"*":{"docs":{},")":{"docs":{},"$":{"docs":{},"`":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"\\":{"docs":{},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"反":{"docs":{},"序":{"docs":{},"列":{"docs":{},"化":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"可":{"docs":{},"读":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"。":{"docs":{},"两":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"上":{"docs":{},"述":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"length":5152},"corpusTokens":["!=","\"\"","\"\",","\"${name}","\"${user}","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"/apis/v1/someapi\"","\"/messages\",","\"/messages/{message}\",","\"/path\",","\"/some\",","\"accept\"","\"accept\".","\"alias\"","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"boilerplate\",","\"build","\"clientset/svca\"","\"clientset/svcb\"","\"content","\"context\"","\"context\",","\"converter\"","\"converter\"}","\"count\",","\"creat","\"create\"","\"custom\"","\"data\"","\"debian:jessie\",","\"delete\"","\"descriptors\"","\"docker","\"error\"","\"exampl","\"fatal\"","\"file\"","\"first","\"form\"","\"get","\"get\"","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/caicloud/nirvana/rest\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"header\"","\"http\"","\"http\",","\"https\".","\"imag","\"info\"","\"init","\"list","\"list\"","\"listmessages\"),","\"localhost:8080\",","\"messag","\"meta\"","\"method","\"methodname\")","\"modifiers\"","\"multipart/form","\"myproject/client/v1\"","\"nirvana","\"nirvana\",","\"number","\"origin\"","\"patch\"","\"path","\"path\"","\"pluginname\"","\"prefab\"","\"queri","\"query\"","\"registries\",","\"runtim","\"source\".","\"source,name\".","\"struct\"","\"text/plain\"","\"there","\"thi","\"update\"","\"v0.1.0\",","\"validator\"","\"validator\"}","\"var\"","\"version\",","\"warn\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/clientset","$gopath/src/myproject","$gopath/src/svca","$gopath/src/svcb","$path","${id}\")","&&","&clientset{}","&client{","&client{client},","&client{}","&cobra.command{","&container{title,","&container{}","&initoptions{}","&message{","'myconfig.name.firstname'.","'nirvana.ip'","(","(*api.definitions,","(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(*client,","(*container)(nil)","(*definitions,","(*http.response,","(*message,","(*types.package,","([]message,","([]string,","(a","(ac","(anytype,","(b","(builder","(c","(ctx","(e.g.","(executor,","(exported)","(from","(goon","(i","(in","(includ","(interface,","(interface{},","(m","(messag","(message1","(multipart.file,","(o","(or","(pem","(r","(reader","(service,","(string,","(types.object,","(uint,","(unexported)","(with",")","*","*/*。","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*client","*client)","*clientset)","*cobra.command","*cobra.command)","*cobra.command,","*comment","*config","*config)","*contain","*container)","*converterforanobject)","*definition.definition)","*http.request","*http.request)","*initoptions)","*int,","*map[string]string)","*message,","*message.contain","*nirvana.config)","*pflag.flagset)","*plugininstaller)","*regexp.regexp","*request","*request)","*rest.client","*rest.config)","*string).","*v1.client","*validatorforanobject)","+nirvana:api=option:\"value\"。",".",".*:","...","...configurer)","...customoption)","...definition.descriptor)","...filter)","...interface{})","...plugin)","...service.definitionmodifier)","...service.filter)","...string)","../clientset/svca","../clientset/svcb","./","./bin/myproject","./build/myproject/dockerfil","./client","./client.go","./config/","./myproject","./v1/client.go","./v1/types.go","/","//","/apis/v1","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/resourc","/apis/v1/resources/{resource}","/apis/v1/{regexp:[a","/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","/etc/nirvana/","/healthz","/healthz。","/home/go/src/myproject","/metric","/path","/path/path2","/path/path2/oth","/path/to/project\",","/version","/version。","/。","/,如果存在就重定向到没有","/,如果没有就加上","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0.","0702","0;","1","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","1.","1.10.x","1.9.x","10)","10,","100","101\",\"data\":{\"id\":\"101\"}}","11.2","11.3","11.4","11.5","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","1,并且把","2","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","2.","2.3.3","200","200,","201","202","204","2295,","2774,","3","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","3.","3.1","3.2","300","4","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","4.","4.2","4.4","404","4918,","5","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","5.","500","5842,","6","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","6.","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","8.1","8080","8080:8080","8080。","9\",\"content\":\"method","9\"}]",":=","=",">","[5,","[]*ast.commentgroup","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","[]consumer,","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.middleware{somemiddleware},","[]def.operator{","[]def.parameter{","[]definit","[]definition.operator{newcustom(f,\"custom","[]descriptor","[]exampl","[]filter","[]funcfield","[]index","[]int","[]message,","[]middlewar","[]oper","[]paramet","[]producer,","[]result","[]string","[]string)","[]string.","[]string{commentsoptiondescriptors,","[]string{},","[]structfield","[{\"id\":0,\"title\":\"method","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`converter`.","`desc:\"debug","`desc:\"desc","`desc:\"log","`desc:\"nirvana","`desc:\"overrid","`desc:\"tl","`desc`","`desc`).","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`key`","`pointer`","`source:\"header,cont","`source:\"query,start\"`","`source:\"query,start,default=100\"`","`validator`.","a.","ab","abov","accept","accepttypeal","account}/nirvana.git","actions.","activ","add","add(point","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","addhook(hook","addmodifi","addmodifier(modifi","addopt","addoption(prefix","after(ctx","ag","age\"`","agenthostport","alias.","allow","altern","alway","analyz","analyzeranalyz","ananlyzer.","anonym","anoth","anotherautostruct","anytyp","anytype)","api","api.go","api.go:179","api.go:87","api.go:95","api.register(root)","apibuild","apis.","api。","api。api","api,并且允许用户接入其他日志系统。","api,用于取得服务运行时信息。","api,用于生成","api,用于获取一条消息:","append","application/json","application/octet","application/x","application/xml","arg","args);","argument","array\",","array,","associ","asynccr","asyncdelet","asyncpatch","asyncupd","auto","automat","b.","back","badgateway","badrequest","base","basic","befor","before(ctx","behavior","behavior.","between","bin","bind","bodi","body()","body(contenttyp","body.","body,但是","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","boilerpl","boilerplate\")","bool","bool(tag","bool)","bool,","bool.","brief","browser","build","build()","build(reason","builder","builder()","builder.","builder,factori","builder:","buildimag","built","byte","byte(tag","bytes.","c","c,","c.rest.request(\"get\",","c.set(externalconfigname,","c.svca","c.svca,","c.svcb","c.svcb,","c.v1","c.v1,","call","called.","can't","careful,","carri","case","cases,","categori","category()","categorycustom","categorystruct","categoryvar","cd","cert","certain","certif","cfg","cfg)`","chain","chain)","chain.continue()","char","check","checker","checker(check","child","children","class","clean","cleaner","cleaner.","clearer","cli","cli.svca().v1().listmessages(context.background(),","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","client.register(root)","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","client。而","client,用于生成","clone","clone(wrapp","cmd","cmd/nirvana","code","code()","code.","collect","comamnd","combin","command","command(cfg","command.","commands.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","commit","common","complet","concret","conet","config","config(nam","config.","config.json","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","configure(cfg","configure(configur","configurers.","configurer:","config:","conflict","connections.","const","consum","consume(r","consume.","consumeallifconsumesisempti","consumenoneforhttpget","consumers:","consumer,converter,prefab","consumer,即允许请求体为空。","consumer:","consumes.","contacts:","contain","container.","containercontain","container:","content","content\"))","content\",","content\"}","content.","content:","contentlength","contentlength()","contenttyp","contenttype()","content}","context","context.","context.context","context.context)","context.context,","context.context。","contexthttpcontext","contextprefab","contextprefab。请参考","contextu","context。http","context。在这种场景下,如果每个","continu","continue(context.context)","continue):","convert","converter.","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","correct\")","correct\",","correspond","count","count)","count).","creat","create)。","creation,","curl","current","custom","customopt","customtracer(trac","data","data\"","data\".","data(&messages).","data(message1).","data(valu","data.","data,然后","db","deal","debian:jessi","debug","declar","def.dataerrorresults(\"a","def.definition.","def.definition{","def.descriptor{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.prefab,","def.query,","default","default()","default,","default:","default={value}","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","defaulttracer(servicenam","defaultvalu","defin","definit","definition.","definition.destin","definition.error。","definition.funct","definition.method","definition.oper","definition.operatorfunc(operatorkind,","definition.sourc","definition.typ","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definition/method","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definitions:","definition。在我们实际开发过程中,经常会要求","definition。请求过滤器则是在","definition此处的","delet","dep","depend","dep:https://github.com/golang/dep","deriv","derived(","desc","descid","describ","descript","description\")}","description()","description(descript","description:","descriptions.","descriptor","descriptor'","descriptor(descriptor","descriptors.","descriptors.go","descriptor。","descriptor。然后动态生成一个","descriptor:","destin","destination()","destinationhandl","destinationhandler)","destinationhandlerdestinationhandl","destination:meta,data,error。","differ","directli","directori","disabl","disable()","distinguish","divid","do(ctx","do(ctx)","do(req","doc","dockefile),还有一个","docker","dockerfil","document","don't","done","doublelog(en","down","elem","element","email:","embed","empti","empty,","enabl","enabled\"`","enableplugin","enableplugin(plugin","encod","ensur","entry.","env","env,","equal","err","error","error()","error(...interface{})","error(format","error(v","error)","error)。其中参数的","error,","error.","errorf","errorf(string,","errorln","errorln(...interface{})","errorproduc","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。","error。其中","error。创建","error,但是第一种方法比第二种多出更多特性:","errros.","etc.","everyth","ex.","exampl","example\",","example\",\"content\":\"exampl","example):","example.","example.ag","example.firstnam","example:","example_ag","example_first_nam","except","exec","execut","execute(context.context)","execute(descriptor","execute.","executed.","executewithconfig","executewithconfig(cfg","executing.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exist","exists,","exit","exp","exp:","expectationfail","expos","expression.","extend","extern","externalconfignam","extract","f","f(context.context,","f)","f.","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fals","false,","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","field","field,","field.","fielda.","fieldb.","fields,","fieldtype)","file","file(key","file(nam","file)","file,","file。","fill","fillleadingslash","filter","filter(filt","filtered.","filters()","filters.","filters.go","filter。","find","findpackag","findpackages(target","finish","first","firstcontextparamet","firstnam","fix","flag","flag,","flags,","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","flags/env/config","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","flag。","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","fmt.print;","fmt.printf;","fmt.println;","follow","for(f","forbidden","fork","form","form(key","form(nam","format","format)","format.","format,比如","found\")。","four","framework","frequent","from.","full","fullmatch:.*","fullmatchregexpnod","func","func()","func(c","func(cmd","func(context.context,","func(ctx","func(d","func(resp","func.","funcfield","function","function.","function:","gatewaytimeout","gen.","gener","generate()","generate(ctx","generator.","generators/golang","generators/swagg","generators/util","generator。这些","generator:","get","get()","get(inst","get(key","get(typin","get/sav","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getmessag","getmessage(ctx","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","get。","get,两者没有区别。","git","git@github.com:{your","github","github.com/caicloud/","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/nirvana","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/definition/method","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","github.com/caicloud/nirvana/plugins/healthcheck","github.com/caicloud/nirvana/plugins/logg","github.com/caicloud/nirvana/plugins/metr","github.com/caicloud/nirvana/plugins/profil","github.com/caicloud/nirvana/plugins/reqlog","github.com/caicloud/nirvana/plugins/trac","github.com/caicloud/nirvana/servic","github.com/go","github.com/golang/dep/cmd/dep","github.com/spf13/cobra","github.com/spf13/vip","githuh","given","global","glog","go","go.","golang","golang/dep","golang:latest","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","gone","goon,用来确定是否需要执行下一个","gopkg.in/go","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","gracefulli","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","handler:","hash","hash(hash","header","header(key","header(nam","header.","headerwrit","headerwritable()","healthcheck","healthchecker)","help","help`,","here","higher","highest","highprior","hold","hook","hook()","hook)","hook.","host","host:","host:port","hosts:","http","http.defaultcli","http.handler","http.handler,用来处理请求。","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.responsewrit","http.responsewriter,","http.responsewriter.","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","http://127.0.0.1:8081","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","http://localhost:8080/apis/v1/messages/101,即可得到一个","http://localhost:8080/apis/v1/messages:","httpcode","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","httpmethod","https\"`","https.","httpversionnotsupport","id","id\"),","id\",","id,","id.","id/nam","id:","identifi","id,也就是","ifac","ignor","imag","image\",","imageprefix","imagesuffix","immedi","immediately.","implement","implementation.","import","import(path","in()","index","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","inform","information.","inherit","init","init()","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","input","insensit","inspect","inspect(context.context)","inspector","inspector:","instal","install(build","install(flag","install/initi","instanc","instance)","instance.","instead","insterface{})","insufficientstorag","int","int(tag","int)","int*,","int,","int.","int16","int16(tag","int32","int32(tag","int32.","int64","int64(tag","int64.","int8","int8(tag","interfac","interface,","interface.","interface{}","interface{})","interface{},","intern","internalservererror","interrupt","invalid","io.read","io.readclos","io.readcloser,","io.reader,","io.writer,","ip","ip\"`","ip()","ip(ip","ip.","is:","isset","isset(key","it'","it.","itself).","itself.","json","json.marsh","json.unmarsh","key","key,","key.","key/valu","keyfil","keyword.","key,默认为","kind","kind()","kind.","last","lasterrorresult","length","lengthrequir","level","level.","leveldebug","leveldebug)","levels.","lifecycle.","line","list","listen","listen.","listmessag","listmessages(ctx","localhost:8080","locat","locations.","lock","locked()","locked.","log","log.","log.fatal(err)","log.fatalln(err)","log.info(msgs)","log.logg","log.logger)","logger","logger\"`","logger()","logger(l","logger(logg","logger.","logger。","logger,使用的是","logger,用于输出错误。","logo","logs\"`","logs,","logs.","long:","look","loopdetect","lower","lowprior","main()","main.go","maintain","make","make([]message,","make(ctx","makefil","makefile,只需要使用简单的","mani","manner","map","map,","map.","map[string][]definit","map[string][]definition.definit","map[string][]definition.middlewar","map[string][]str","map[string]string,会写入","map[typename]*typ","mappings.","marshal","match","match.","matching.","math.maxint32","mean","mediumprior","messag","message\"),","message\",","message()","message).","message.getmessage,","message.go","message.listmessages,","message1","messagenotexist","messagenotexist.error(id)","messages\"),","messages\",","messages.","meta","meta(valu","method","method)","method.","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","methodnotallow","methods.","middlewar","middlewares()","middlewares.","middlewares.go","middlewares:","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","missing.","mkdir","mode.","modif","modifi","modifier()","modifier(modifi","modifier.","modifiers.","modifiers.go","modifiers。","modifier。","more","msgs,","multipart/form","multipl","mustnewcli","mustnewclient(cfg","mustnewclientset","mustnewclientset(cfg","myproject","myproject/cli","myproject:v0.1.0","name","name\"`","name()","name(nam","name,","name.","name:","names.","namespac","namespace(n","namespaces.","need","need.","neg","nest","net/http/pprof","networkauthenticationrequir","new","new(message)","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newclient","newclient(cfg","newclient(cfg)","newclientset","newclientset(cfg","newclientset(cfg)","newcontain","newcontainer()","newcontainer(root","newcontainer(title,","newcustom","newcustom(f","newinitcommand","newinitcommand()","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","newlin","newserv","newserver(c","newsimpleserializer(contenttype)","next","nil","nil)","nil,","nil.","nil。如果服务异常,则返回相应的错误。","nirvana","nirvana.","nirvana.configur","nirvana.json","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana.toml","nirvana.yaml","nirvana.yaml。","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","nobodi","nobody@nobody.io","node.","node:","nodes:","non","notaccept","notextend","notfound","noth","nothing)","notimpl","number","object","object,","object.","objectof","objectof(pkg,","objv2,","obtain","occur","occurs,","occurs.","offset","ok","ok,","on","on,","on.","once.","one.","opeartor","open","openapi","openapi/spec","opentrac","opentracing.span)","opentracing.tracer)","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operatorkind","operators/convert","operators/valid","operators:","operators:","operator。","operator,那么","operator:","operator:valid","optim","option","option,","options.","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","optionsregexp","option,并且实现","order:","origin","os.exit(1)","os.exit(1).","otherwis","out","out()","output","outsid","overrid","override,","overrideglob","p","packag","package.","packagecom","packagecomments(path","packages(par","packages.","panic","panic(err)","panic.","panic。","paramet","parameter.","parametergener","parametergenerator)","parametergeneratorparametergener","parameters.","parameters:","parent","parent'","pars","parsecom","parsecomments(com","parserequestform","pass","patch","path","path(\"message\",","path(key","path(nam","path(path","path.","path:","pathnod","path,query,header,form,file,bodi","pattern","paymentrequir","pkg","pkg/api","pkg/apis/modifi","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","pkgpath","place","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","playground/validator,提供了用于生成","pleas","plugin","plugin.","plugininstal","plugins.","po","pointer","pointer.","port","port\"`","port()","port(port","port.","pos.","posit","post","pr","preconditionfail","preconditionrequir","predefin","prefab","prefab。","prefab。启用之后,所有业务函数的第一个参数必须是","prefab,即","prefab,名称为","prefix","prefix\")","prefix\",","prefix:","prefix,那么","present","previou","printer","prior","prioriti","priority()","privat","process","produc","produce(w","produce.","produceallifproducesisempti","producenoneforhttpdelet","producerconsum","producers,并且他们的行为和","producers:","producer。","producer,即允许响应体为空。","producer:","produces.","project","project\")","project.register(root)","project:","prometheu","prometheus,提供了一个","provid","proxyauthrequir","put","put()","put(in","put(inst","putinterfac","putinterface(ifac","qualifi","queri","query(\"count\",","query(key","query(nam","query,head","r","read","reader","reader.","readme.md","reason","reason,","reason.","reason。","reason,方便客户端判断错误类型。","recal","receiv","recommend","recommended.","recovered.","redirecttrailingslash","reflect.kind","reflect.structtag","reflect.typ","reflect.type)","regexp","regexp.mustcompile(`^[","regexp:","regexp:[a","regexpnod","regexpnode.","regiser.","regist","register([]def.descriptor{{","register(root","registerconfiginstaller(ci","registerdestinationhandl","registerdestinationhandler(handl","registerparametergener","registerparametergenerator(gener","registerprefab()","registri","registries\")","regular","relat","replac","replacement:","repo","report","req","request","request()","request(method","request,","request.","requestedrangenotsatisfi","requestentitytoolarg","requestexecutor","requestheaderfieldstoolarg","requestid(en","requestidkey(key","requests.","requesttimeout","requesturitoolong","request。config","resourc","respons","response.","responsewrit","responsewriter()","responsewriterresponsewrit","responsewriter。可是使用","rest","rest.newclient(cfg)","result","result.","results.","results:","results。其中","retriev","retrun","return","return.","rfc","right.","root","root.addcommand(newinitcommand())","root.execute();","routepath()","router","router.","routingchain","routingchain)","routingchain.continue()","rules:","run","run(cmd","run.","run:","runtimeimag","same","scheme","scheme.","scheme:","schemes:","second","see","segment.","select","sens","sequenc","serial","serv","serve()","serve=\":8081\"","server","server.","servic","service.","service.builder,","service.contextprefab。这个","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","service.servehttp()","service/rout","services.","serviceunavail","set","set(key","set(nam","set.","setdefaultlogger()","sethook","sethook(hook","setlogg","setlogger(logg","setmodifi","setmodifier(m","sever","severityerror","severityfat","severityinfo","severitywarn","short","short:","shortflag","show","shut","shutdown","shutdown(ctx","shutdown,","signature:","silentlogg","singl","site","situation.","slice,","someapi","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","sourc","source()","source:","sourceaddr(en","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","source。其他的","source:path,query,header,form,file,body,auto,prefab。","span","span.","special","specially.","specif","specifi","specified,","start","starting.","statu","statuscod","statuscode()","stderr","stdlogger。可以通过","stdout","store,","store.","stream","stream\"","string","string(tag","string)","string,","string.","stringnod","stripped.","strongli","struct","struct(inst","struct,","struct.","structfield","structs,","structure\",","struct{}","stuff","sub","submatches.","subsequ","succeess","success","suffix\")","suffix\",","summari","summary:","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","swagger","tag","tag()","tag.","tag。","take","target","target.","teapot","termin","terminating.","test","text/plain","the/rest/path","three","time,","time.dur","time.duration.","titl","title:","tl","tls(certfile,","token.pos)","toolchains\",","toomanyrequest","touch","trace","tracer","treat","true,","true,那么除了设置当前","two","type","type\"","type\"`","type()","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","types.go","types:","type为了能让","u","uint","uint(tag","uint(value),","uint)","uint*,","uint.","uint16","uint16(tag","uint16)","uint32","uint32(tag","uint32.","uint64","uint64(tag","uint64.","uint8","uint8(tag","uintptr","unauthor","unavailableforlegalreason","under","uninstal","uninstall(build","uniqu","unless","unmarsh","unprocessableent","unsupportedmediatyp","until","up","updat","upgraderequir","upper","url","urlencod","urlencoded\"","us","usag","use.","use:","used.","user","usual","util","v","v(level)","v.","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","v2","valid","valid.","validate(cmd","validate(nam","validate(object.(*object));","validate(target","validation,","validator.","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","validators,用于","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","values.","var","variantalsonegoti","vc","vendor","vendor。","verbos","verboser,","verboser.","version","version(vers","version.go","versions:","via","view","viper","w.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","way","ways.","whether","within","without","won't","wrapper","wrapper.","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","x","xml.marshal","xml.unmarsh","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","{...)","{...}","{executablefilepath}/","{executablefilepath}/config/","{return","|","}","})","}),","},","}...)","↑","↓","│","└──","├──","。","一个创建命令的私有函数","一个基本的插件框架如下:","一个表示当前命令的所有参数的","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","一致的","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","一般情况下,我们使用最新版本的","一般情况下,插件应该通过插件","一般情况下,用户会使用这个全局的容器。","上","上添加一个中间件用于提取","上的中间件,用于打印所有路由匹配成功的请求的日志。","下查看启用的","下面用一个例子来说明这几个节点:","不能满足实际的业务需求,可以通过","与","与业务函数的参数名称无关。","且成功匹配的情况下,中间件的执行按照","业务函数","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","业务函数返回结果如何放到请求的响应中。","业务方法:","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","两个服务项目。","中","中。","中一类特殊的","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中也提供了直接打包成镜像的命令:","中传递","中使用","中创建","中创建实例并通过","中包含","中包含了两个组件功能实现了","中包含了许多实现了","中可以看到","中定义。api","中定义的动作以及对应的","中实现的唯一一个","中打印表格的功能。","中提供了","中携带","中添加","中添加插件配置。","中的公开字段根据一定的规则(规则参考上面的注释)从","中间件","中间件不应该修改","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件接口如下:","中间件添加在","中):","中,context","中,不能在任何子目录下使用","中,业务函数是","中,存在一些","中,我们也经常看到使用数字","中,我们建议所有的","中,所有的","中,提供了","中,每一个","中,目前包括三个命令:","中,都有一组","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","中,错误需要实现","中:","为","为了保证业务与","为了方便使用,nirvana","为了演示这个过程,我们逐步构建这个项目。","为所有","为所有的","为空的","为被替换为","主要是以","之上,构建了","之前。","之前使用。","之前,需要知道以下几件事情:","之后,编译运行。然后访问","之后,通过","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","也在当前包中。如果需要对配置进行扩展,增强","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","也就是说,业务可以完全不依赖框架。","于","于是","介绍","从","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","从请求中获取数据。","从请求的那一部分取得数据,然后传递给业务函数。","代码如下:","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","以及插件化功能。","以外,config","以外,还会设置全局的","会从第一个","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","会把对应的","会显得非常冗余。因此","会生成一个完整的","会被由命令","会读取","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","但是一般情况下,我们不应该这样使用","但是为了使","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","使用客户端","使用方法如下:","使用自定义的","使用范例","使用默认的","依赖的结构体都会被提取出来并生成到","保存了一个请求的数据,用","信息。","信息的提取。","修改。","修改一个资源的部分内容","修改器","修改器用于在生成路由之前修改","修改器,请求过滤器,api","值","值。一般情况下可以设置为代码的","健康检查插件","健康检查插件提供一个","先执行。并且执行之后会返回","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","公共部分的构建,而每个","公开给用户使用。于是我们需要给","关闭插件","其中","其他与","其他与具体","具体实例类型","内部,比如一个","准备工作","函数。请参考","函数即可:","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","分别对应","列表的","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","则是将业务函数的返回值转换并写入到响应的","则用于判断一个错误是否是由当前的","则用于构建特定的","则由","则表示请求不应该被继续处理,立刻丢弃。","则负责将业务函数的返回结果写入到响应体中。","则针对单个的业务参数和返回值,可以对值进行验证和修改。","创建","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","创建的项目中,可以在","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","创建,用来表示每一个","删除一个资源","到命令中","到自己的账户下,然后下载源码到本地开发目录中:","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","前缀路径","剩余路径类型节点","剩余路径类型节点:","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","功能,并提供了从","加上","加上一些附加属性,用来表示返回的错误码等信息。","加上空的","包","包中存在三个概念,分别是","包中对","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中):","包中,可以看到","包中,提供了如下功能:","包之间的依赖关系:","包介绍","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包会从以下文件列表中读取配置文件:","包依赖了","包则是利用了","包利用","包包含","包包含了","包包含多个工具用于","包和","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包实现了框架","包实际上都是利用了","包帮助用户快速构建项目。","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包提供了一个","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包提供了一个简单的","包提供了一系列的方法帮助用户快速生成用于校验参数的","包提供了一组基础的日志","包提供了工具方法用于将转换函数包装成","包提供了相应的工具用于注册用户自己的","包提供的","包提供的数据结构生成","包提供的方法注册自定义的","包提供的方法进行注册:","包是一个全局实例容器,每种类型对应一个实例。","包有一个默认的","包来说就简单很多了,这个包里包含一个","包注册指标。采集端可以通过","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包的","包的依赖,可以自行实现错误包,只要产出的错误符合","包的入口是","包的实现基于","包的插件能力:","包相对","包类似于标准库的","包读取源码并生成","包路径:","包还提供了一个全局的","包还提供了方法用于创建自定义验证器:","包进行","包进行路由构建和匹配。","包里提供了一个","包除了包含对","包,但是提供了方法用于生成格式化的错误和错误判断。","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于分离实例的创建和","包,用于读取项目源码,并生成与","即创建了","即可。","即可得到返回结果:","即可查看文档。","去读取指定路径的源码,然后从中找到标记了","去读取数据并进行类型转换。","参数值来源于","参数值来源于当前","参数名称,作为","参数和返回值定义","参数描述","参数来源","参数的类型转换和数据验证。","参考了","取得返回值,反序列化成","变更。","另外","只使用","只能生成","只需要将业务函数对应位置的","可以不同。","可以在","可以构建带有","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","可以读取源码,获取结构对象和注释信息。","可以通过","可能不能满足实际使用需求。因此","可被","同等级别的字段","名称","名称为","后通过","启动时会打印出","启用","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件后,可以直接向","启用插件并使用默认配置","命令","命令为例,说明单个命令的基本结构:","命令启动容器,然后进行访问:","命令对应的包在","命令就可以完成编译工作:","和","和一个使用了","和业务函数的参数一一对应,而","和插件系统。这个包放置在根目录中是因为这个包是","和相应的功能。","和端口。","和第三方功能的扩展)。","和返回值的","和配置读取,为","因为只获取一条消息,此处为","因此在","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在","在一个","在一个请求路由匹配成功后,nirvana","在上面的定义中,存在两个额外功能:","在上面的路径节点中,每个节点都可以绑定一个","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在业务的实际场景中,默认提供的","在使用","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在完成了","在完成修改并提交到自己的","在实现一个自定义的","在实际的业务中,http","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在常见的商业","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在接收到","在整个","在服务启动之后,可以通过浏览器或者命令行访问","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","在每个","在没有","在设计上与现存的一些","在运行过程中使用的","在这个包中,主要包含三个概念:config,cli","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","在需要发布的时候,通常需要打包成镜像的形式,在","在需要生成","在项目的","地址。","基本结构如下:","基础类型的转换器这些转换器一般是用于将请求里的","基础类型,结构体类型和自定义类型。目前验证方法基于","处理框架:","多客户端整合","多客户端整合。","大版本的兼容性。即使用","大部分字段与","如下:","如果","如果以下路径都添加了中间件:","如果希望对","如果接收类型是","如果有多个","如果服务正常,则","如果类型符合","如果能返回一个","如果设置了","如果读取到配置文件,那么除了使用","如果需要新增命令扩展","如果需要给字段设置默认值,则需要使用","字段中,可以在客户端使用","字段无效","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","存在优先级,优先级高的","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","完全匹配。","完成","定义","定义。","定义了","定义了一个返回","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义的无关性,nirvana","定义相关的代码都在这个目录中","定义,再对应业务函数:","定义,可以修改或删除","定义,然后由","定义,用于描述","定义:","实例","实例。","实现了","实现了这个接口后,通过","实现的","实现,帮助用户快速构建名为","实际上是一个","实际上是调用的","实际上要填写的部分就是只与自身业务相关的信息。modifi","客户端。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","容器如下:","对于","对于不需要输出日志的场景,使用","对于中间件而言,处理完当前的任务之后只需要调用","对于没有","对于结构体类型,在需要的字段上添加名为","对于这种错误,都会以","对应","对应一个","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","将","将数据写入到响应。","将框架传递给它的与请求绑定的","将类型转换为字节数据写入到响应体中。","将返回值转换为字节写入响应中。在","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就无效。如果","就能够看到","就足够了。但是为了让错误能够以","尾部是不是存在","工作流程","帮助用户把实例方法转换为","并且会检查最后一个","并使用","并成为","应该返回","开发工具介绍","开发的情况下,需要保持对","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","快速生成","性能分析插件","性能分析插件添加与","成功状态码","我们建议","或","或域名,可以有多个","所有与","所有的","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","执行","执行完成之后,请求也处理完成了。","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","扩展了","指定其他输出目录(目前仅支持生成","接下来以","接下来我们给项目增加一个","接口。swagger","接口。其中","接口。即:","接口。如果实现了,就会以","接口。用户在","接口即可。","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","接口如下(这个接口并没有显式定义在","接口如下:","接口实例类型","接口实现了请求跟踪机制,会在","接口或者是","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","接口,可用于针对单个参数或返回值进行验证和修改:","接口,用于创建具有一类特征的","接口:","接收配置以外,还可以通过一些帮助方法获取配置:","描述","描述。所有的","描述符","描述符。构建完成的","提交代码。","提供了","提供了一个命令用于从项目中生成文档:","提供了一个新的接口:","提供了两种类型的","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","提供了多个方法用于设置生成服务需要的日志,definit","提供的","提供的一些","提供的用于生成","插件","插件实现了这个接口之后,即可通过","插件接口的插件。","插件接口:","插件提供了一个函数接口:","插件机制","支持良好,因此在","数据。","数组包含了这个路径下的所有定义。","整合客户端","文件","文件中,方便客户端使用。","文档","文档。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","文档和客户端。","文档截图如下:","文档生成和客户端生成会依赖这个配置文件进行","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法","方法。","方法。clone","方法。比如某个","方法一","方法二","方法包","方法包。","方法安装插件。","方法就应该是","方法用于在对","方法用于安装","方法用于直接创建出","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","方法获取类型,","方法获得","方法返回,因此这两种类型没有对应的方法。","方法都是语义层面的,为的是提高","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","方法,这个方法是一个抽象方法,用于描述一种行为(比如","无","时候,使用","时,使用","是","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","是一个着重于提高开发效率和业务解耦的","是一个短语,用于描述这个","是一样的。","是业务函数返回值处理器,通过调用","是从","是具体要验证的类型,不能使用接口。","是否由这个错误工厂生成。","是基础包,分别负责日志基础接口和错误处理基础接口。","是对","是由服务端生成而不由客户端提交,error","是真正的参数生成器,通过调用","是返回一个资源列表的,那么","是链式调用的,也就是说上一个","暴露","更新一个资源(幂等)","有","有关的所有数据结构,产出的结构可用于生成文档和客户端。","有关,因此如果多个","有时候默认的验证器不能覆盖复杂的验证需求,因此","服务。","服务。因此","服务使用的协议,只能填写","服务启动提供了命令行支持。","服务用于访问这个文档。打开浏览器,访问","服务配置的特殊性,config","机制,允许在","机制,可以在收到一个请求的时候,立刻进行处理。并根据","机制,用于单独配置每一项信息:","来启用插件,并且将插件","来唯一确定一个错误","来提供","来标志的错误。但是数字","来生成","来生成一个能够处理当前的路由上下文的","来自于服务端本身。","来表达这些配置:","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","构建","标准接口如下:","根命令中,比如:","根据上面的","根据资源唯一","框架。","框架不同,它的核心目标是让业务与框架隔离。","框架中处于最高优先级。filter","框架会为每个请求构建这样的","框架的","框架的设计核心思想是:隔离","框架设计概览","概念","概览","模式后,level","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","正则表达式,用于匹配路径","正确实现","此时","此时在","每个","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","每种","比如设置","没有太大区别:","注册","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","注册需要的","注意,get()","注意:oper","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","注:如果在","注:这个","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","测试以外,还需要使用","添加","添加到","添加成功后,所有前缀匹配","然后创建两个服务项目(仅用于演示):","然后在","然后就可以直接使用命令创建项目(请确保","然后编译运行,访问","版本信息插件","版本信息插件提供一个","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","状态码作为基础的:","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","生成","生成。","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","生成代码","生成代码:","生成代码:","生成匿名函数:","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","生成客户端","生成的客户端代码如下:","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","生成的客户端是版本化的,版本在","生成,客户端代码生成,项目结构生成。","生效之前,对","用于传入参数输出一个真正的错误。","用于传递请求的上下文。context","用于分析源码的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于将请求体中的数据转换为业务函数需要的类型,而","用于描述一个业务函数的参数的来源和默认值。","用于文档和客户端生成","用于暴露服务端指标。","用于构建","用于检查服务是否正常。","用于生成一个匿名函数,生成的函数的签名没有方法的","用于生成业务函数的参数的","用于真正发起请求,并完成","用于表示代码注释的","用于访问","由","由于","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的两个方法:","的主要命令,利用","的使用方法和普通","的入口包。","的兼容性。","的功能,需要按照上述结构进行开发。","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的参数与返回值。","的参数和返回值中,尽量避免使用其他接口。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的各个组件也是依据这个基本法设计的。在","的命令行和其他依赖工具:","的响应,响应体为:","的基础类型,供业务函数使用。//","的填充。","的字段。","的字段。忽略所有没有","的定义。","的定义以外,还提供了一些函数,帮助快速构建","的实例而不是","的客户端:","的对应关系。","的工具","的开发工作后,我们需要将","的形式。","的形式判断一个","的形式向","的形式向客户端返回,我们还需要给","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的情况下,nirvana","的数据来源都是来自于请求,而","的文件用于把当前的命令加入到","的方式有两种:","的方法与","的方法:","的最后一个返回值加上","的最小值为","的格式满足:","的注册方法即可注册","的版本号。下表中展示了","的用户提供一个文档,方便用户阅读。nirvana","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的示例:","的第一个参数添加上名为","的结构体类型,会递归遍历以寻找带有","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的请求都会执行这个中间件。","的调用者。这样就完成了对一个项目的","的路径上。","的运行,只用于描述项目的信息以及区分不同版本的","的返回值会作为下一个","的返回值作为","的返回值作为数据返回。","的返回值来确定是直接丢弃该请求还是继续处理。","的返回结果。","的返回结果,构建出相应的客户端和文档。golang","的配置文件在根目录的","的配置,用于创建","的错误)。","的除了","的需要的包定义文件","的顶级包,而且其依赖的所有包只来自","的项目结构如下:","的顺序。","监控指标插件","监控指标插件基于","目前","目前客户端生成对接口的支持还不完善,仅仅对","目前支持三种类型的验证,分别对应","目录下生成","目录中就能看到编译后的二进制文件,直接运行:","目录:","直接编译运行","相关接口如下:","相关的所有定义和类型信息。api","相关类型:","真正的实例,即","种类型的","空的","端口提供服务。为了防止端口冲突,可以使用","第一种方法带有","第一种方法支持使用","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型","类型。","类型。业务函数的参数也响应的变成了","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型是否和业务函数的参数类型一致。","类型的","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","类型转换为了","类型):","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","系列包","系列包包含:","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","级别的配置,这些配置是针对当前服务的。而对应的","结构体包含了一个具体的","结构体包含具有如下含义的字段:","结构体,可以组合成一个:","结构,然后再返回给","给项目添加一个","统一网关访问","继承的字段","编写,只是为了通过","编译并打包成","编译运行","编译运行后可以得到结果:","而不是","能转换为可读的数据结构,构建了","自动处理数据转换,nirvana","自定义验证器","自身和标准库(config","范例如下:","范例,因此可以直接运行查看效果。","获取一条消息的","获取接口实例:","获取某个实例的方法,之后再在服务启动逻辑里","获取资源","获取资源列表","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","要求每个插件提供一个","设置","设置为","设置接口实例:","设置服务","设置服务名称","设置服务版本号","设置服务的描述","设置监听的","设置监听的端口。","设置请求","设置路径前缀,默认值为","访问","证书和密钥。","识别的错误,但是如果业务逻辑中如果不希望引入对","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","该命令默认会在","详细描述这个","说明了请求和响应中的数据类型。为了根据","请求。","请求中使用的都是","请求中,content","请求日志插件","请求日志插件会添加一个在","请求的","请求追踪插件","请求追踪插件基于","读取源码并进行分析,产出","调用,可以生成客户端以供使用:","负责一种类型的参数的验证和类型转换工作。","负责一种类型的返回结果的数据转换工作。","路径","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径匹配完成后,会调用匹配链的最后一个节点的","路径同等级别的字段","路径替换,因此需要正确设置版本规则。","路径默认为","路径,默认值为","路由和处理的所有功能。","转换为路由需要的数据结构,涉及到以下内容:","转换函数必须符合","输出日志如下(项目路径和日志时间会有所不同):","过滤器","过程。也就是可以在声明","返回","返回值可以是任意结构,自动转换并写入到","返回值目标","返回出去,供业务函数使用。//","返回回去。","返回服务当前是否健康。api","返回服务的版本信息。api","返回的是资源数组,所以使用","还会将","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这两种方法都可以创建","这两种类型的请求体,并转换为","这个","这个主要是利用了","这个例子中,验证器要求","这个包并进行命令注册:","这个包方便了用户创建能够被","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个实例方法容器分离了方法的","这个插件暴露三个选项:","这个节点匹配剩余所有路径。","这个过滤器判断","这个过滤器只针对","这个返回值类型必须是","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","这套日志","这就是","这就表示文档生成成功,并且提供了一个","这是一个在","这是一个工具方法,用于快速生成一个参数结构。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","这样做有两个优势:","这样就能够非常方便的错误创建和错误判断了。","这样就能通过","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","这种形式的","这里添加的业务函数都是以","进行了扩展,涉及到字段的改变,也需要在这个包中修改","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行修改。","进行包装的时候,获取正确层级的调用栈信息。","进行开发,但是需要保证两个","进行扩展,需要遵守上面这些规则。","进行描述的。首先看一个","进行注册。然后提供相应的","进行解析。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","选项的注释。两个选项的值对应两个函数,分别返回","通常对应于","通常情况下,我们需要快速添加一些","通常情况下,有","通过","通过具体错误的","那么","那么如果存在请求","部分,例如:","都是通过","都有一个对应的","都通过这个","都遵守","都需要去描述这个参数,那么","配置器机制","配置基本信息以外,还提供了插件机制。","配置文件名:","配置文件,用于描述项目的基本信息和结构。","采集指标数据。","里。","里取值。","里的值进行文本国际化。","里获取的。","针对请求的","链接","错误包","错误类型,必须是","镜像","限制","除了","除了使用","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","除了常规的","除了插件","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。","集合上述所有功能的","需要使用","需要实现接口:","项目","项目。项目结构如下:","项目名[:模块名]:错误名","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","项目,用于保存所有服务的客户端:","风格,并且在","首先会利用","首先创建","首先看","首部有没有","验证器函数必须符合签名","默认值","默认启用的","默认情况下,nirvana","默认情况下,我们会为每个服务生成如下结构的客户端:","默认情况下,插件会添加四个","默认提供了","默认提供的","默认路径为"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"概览","keywords":"","body":"Nirvana\nNirvana 是一个着重于提高开发效率和业务解耦的 API 框架。\nNirvana 在设计上与现存的一些 golang 框架不同,它的核心目标是让业务与框架隔离。\n在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。\n也就是说,业务可以完全不依赖框架。\nNirvana 的各个组件也是依据这个基本法设计的。在 Nirvana 文档中,我们将逐步介绍这些组件的使用方式以及设计理念。\n"},"guides/project.html":{"url":"guides/project.html","title":"项目结构和初始化","keywords":"","body":"项目结构和初始化\n创建项目\nNirvana 创建项目非常简单,不过在创建项目之前,首先需要下载安装 Nirvana 的命令行和其他依赖工具:\n$ go get -u github.com/caicloud/nirvana/cmd/nirvana\n$ go get -u github.com/golang/dep/cmd/dep\n然后就可以直接使用命令创建项目(请确保 $GOPATH/bin 在 $PATH 中):\n$ cd $GOPATH/src/\n$ nirvana init ./myproject\n$ cd ./myproject\n此时在 $GOPATH/src/myproject 会生成一个完整的 Nirvana 项目。项目结构如下:\n .\n├── bin # 存放编译后的二进制文件\n├── build # 存放项目的 Dockerfile 以及与构建相关的文件\n│ └── myproject # \n│ └── Dockerfile #\n├── cmd # 存放项目的启动命令\n│ └── myproject #\n│ └── main.go # \n├── Gopkg.toml #\n├── Makefile #\n├── nirvana.yaml #\n├── pkg # 所有的业务逻辑都应该在这个目录中\n│ ├── apis # 所有与 Nirvana API 定义相关的代码都在这个目录中\n│ │ ├── api.go #\n│ │ ├── filters # 存放 HTTP Request 过滤器\n│ │ │ └── filters.go #\n│ │ ├── middlewares # 存放 Nirvana 中间件\n│ │ │ └── middlewares.go #\n│ │ ├── modifiers # 存放 Nirvana Definition 修改器\n│ │ │ └── modifiers.go #\n│ │ └── v1 # 存放项目 v1 版本所有的 API 定义\n│ │ ├── converters # 存放 v1 版本需要用到的类型转换器\n│ │ ├── descriptors # 存放 v1 版本的 API 描述符\n│ │ │ ├── descriptors.go #\n│ │ │ └── message.go # 对应 message 业务逻辑的 API 定义,可以修改或删除\n│ │ └── middlewares # 存放 v1 版本需要用到的中间件\n│ │ └── middlewares.go #\n│ ├── message # 业务逻辑目录,这个目录是生成的样板,可以修改或删除\n│ │ └── message.go #\n│ └── version # 项目版本信息目录\n│ └── version.go #\n├── README.md #\n└── vendor #\n这个项目中包含了编译和构建容器的基本工具(Makefile 和 Dockefile),还有一个 golang/dep 的需要的包定义文件 Gopkg.toml。通过如下命令即可完成依赖包的安装:\n$ dep ensure -v\n到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个 API 范例,因此可以直接运行查看效果。\n编译运行\n直接编译运行\nNirvana 创建项目时自动生成了 Makefile,只需要使用简单的 make 命令就可以完成编译工作:\n$ make\n在项目的 bin 目录中就能看到编译后的二进制文件,直接运行:\n$ ./bin/myproject\n启动时会打印出 Nirvana 的 Logo 以及当前项目的版本信息以及监听的端口,默认端口是 8080。\n在服务启动之后,可以通过浏览器或者命令行访问 http://localhost:8080/apis/v1/messages:\n$ curl http://localhost:8080/apis/v1/messages\n就能够看到 API 的返回结果。\n编译并打包成 Docker 镜像\n在需要发布的时候,通常需要打包成镜像的形式,在 Makefile 中也提供了直接打包成镜像的命令:\n$ make container\n就会自动开始在容器内编译和打包镜像。不过这个过程中需要 golang:latest 和 debian:jessie 这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改 ./build/myproject/Dockerfile 。\n打包完成后,可以通过 Docker 命令启动容器,然后进行访问:\n$ docker run -p 8080:8080 myproject:v0.1.0\nNirvana 项目配置\n每个 Nirvana 项目都有一个 nirvana.yaml 配置文件,用于描述项目的基本信息和结构。\n# 项目名称\nproject: myproject\n# 项目描述\ndescription: This project uses nirvana as API framework\n# 服务使用的协议,只能填写 http 和 https\nschemes:\n- http\n# 访问 IP 或域名,可以有多个\nhosts:\n- localhost:8080\n# 项目负责人\ncontacts:\n- name: nobody\n email: nobody@nobody.io\n description: Maintain this project\n# 项目 API 版本信息,用于区分不同版本的 API\n# 用于文档和客户端生成\nversions:\n # 版本名称\n- name: v1\n # 版本描述\n description: The v1 version is the first version of this project\n # 版本规则\n rules:\n # 路径前缀,匹配前缀为 \"/apis/v1\" 的 API\n - prefix: /apis/v1\n # 正则表达式,用于匹配路径\n # 如果设置了 prefix,那么 regexp 字段无效\n regexp: \"\"\n # 这个字段仅用于在生成文档和客户端的时候,替换匹配的 API 路径。为空时不会进行替换。\n # 比如设置 replacement = \"/apis/myproject/v1\"\n # 那么 \"/apis/v1/someapi\" 为被替换为 \"/apis/myproject/v1/someapi\"\n replacement: \"\"\n\n这个配置文件不会影响 Server 的运行,只用于描述项目的信息以及区分不同版本的 API。API 文档生成和客户端生成会依赖这个配置文件进行 API 版本识别和 API 路径替换,因此需要正确设置版本规则。\n"},"guides/api.html":{"url":"guides/api.html","title":"API","keywords":"","body":"API\n概念\nNirvana Definition\n在 Nirvana 中,所有的 API 都是通过 Descriptor 和 Definition 进行描述的。首先看一个 List Messages 的 API 定义:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/apis/v1/descriptors/message.go\n\nfunc init() {\n register([]def.Descriptor{{\n // Path 定义了 API 路径\n Path: \"/messages\",\n // Definitions 数组包含了这个路径下的所有定义。\n Definitions: []def.Definition{listMessages},\n },\n }...)\n}\n\n// listMessages 定义了一个返回 Message 列表的 API\nvar listMessages = def.Definition{\n // 这个 API 返回的是资源数组,所以使用 List 方法。\n Method: def.List,\n // Summary 是一个短语,用于描述这个 API 的用途。这个短语在生成文档和客户端的时候用于区分 API。\n // 这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。\n Summary: \"List Messages\",\n // 详细描述这个 API 的用途。\n Description: \"Query a specified number of messages and returns an array\",\n // 业务函数\n Function: message.ListMessages,\n // 对应业务函数的参数信息。用于告知 Nirvana 从请求的那一部分取得数据,然后传递给业务函数。\n Parameters: []def.Parameter{\n {\n // 参数来源\n Source: def.Query,\n // 参数名称,作为 key 从 Source 里取值。\n // 与业务函数的参数名称无关。\n Name: \"count\",\n // 默认值\n Default: 10,\n // 参数描述 \n Description: \"Number of messages\",\n },\n },\n // 对应业务函数的返回结果。用于告知 Nirvana 业务函数返回结果如何放到请求的响应中。\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n根据上面的 API 定义,再对应业务函数:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/message/message.go\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。\nDefinition Method\n在 Nirvana 中,我们建议所有的 API 都遵守 RESTful 风格,并且在 URL 中携带 API 的版本号。下表中展示了 Nirvana 中定义的动作以及对应的 API 定义。\n\n\n\nNirvana 方法\nHTTP 方法\nHTTP 成功状态码\nURL\n描述\n\n\n\n\nList\nGET\n200\n/apis/v1/resources\n获取资源列表\n\n\nGet\nGET\n200\n/apis/v1/resources/{resource}\n根据资源唯一 ID/Name 获取资源\n\n\nCreate\nPOST\n201\n/apis/v1/resources\n创建一个资源(非幂等)\n\n\nUpdate\nPUT\n200\n/apis/v1/resources/{resource}\n更新一个资源(幂等)\n\n\nPatch\nPATCH\n200\n/apis/v1/resources/{resource}\n修改一个资源的部分内容\n\n\nDelete\nDELETE\n204\n/apis/v1/resources/{resource}\n删除一个资源\n\n\nAsyncCreate\nPOST\n202\n/apis/v1/resources\n异步创建资源\n\n\nAsyncUpdate\nPUT\n202\n/apis/v1/resources/{resource}\n异步更新资源\n\n\nAsyncPatch\nPATCH\n202\n/apis/v1/resources/{resource}\n异步修改资源部分内容\n\n\nAsyncDelete\nDELETE\n202\n/apis/v1/resources/{resource}\n异步删除资源\n\n\n\n对于 Nirvana 异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。\n所有的 Nirvana 方法都是语义层面的,为的是提高 API 定义的可读性。也就是说 List 和 Get 在一个 HTTP 请求中使用的都是 GET,两者没有区别。\n但是为了使 API 定义更加明确,我们应该根据场景确定使用哪个 Nirvana 方法。比如某个 API 是返回一个资源列表的,那么 Nirvana 方法就应该是 List 而不是 Get。\nDefinition Source\nDefinition Source 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n参数来源\n名称\n描述\n\n\n\n\nPath\n有\n参数值来源于 API Path\n\n\nQuery\n有\n参数值来源于 URL Query\n\n\nHeader\n有\n参数值来源于 Request Header\n\n\nForm\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 application/x-www-form-urlencoded 或 multipart/form-data\n\n\nFile\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 multipart/form-data\n\n\nBody\n无\n参数值来源于 Request Body\n\n\nAuto\n无\nAuto 类型对应的参数必须是一个结构体,通过结构体的 tag 定义来确定每个字段的来源\n\n\nPrefab\n有\n参数值来源于当前 server 内部,比如一个 DB 链接\n\n\n\nAuto 类型的 tag 范例如下:\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n}\n\ntag 名称为 source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是 Body 类型名称可以为空。\n如果需要给字段设置默认值,则需要使用 default={value} 的形式。 \n如果有多个 Auto 结构体,可以组合成一个:\ntype AnotherAutoStruct struct {\n ...\n}\n\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n AnotherAutoStruct\n}\n\n对于没有 source 的结构体类型,会递归遍历以寻找带有 source 的字段。忽略所有没有 source 的字段。\nDefinition Destination\nDefinition Destination 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n返回值目标\n描述\n\n\n\n\nMeta\n这个返回值类型必须是 map[string]string,会写入 Response Header\n\n\nData\n返回值可以是任意结构,自动转换并写入到 Response Body\n\n\nError\n错误类型,必须是 error\n\n\n\n给项目添加一个 API\n接下来我们给项目增加一个 API,用于获取一条消息:\nfunc init() {\n register([]def.Descriptor{{\n Path: \"/messages\",\n Definitions: []def.Definition{listMessages},\n }, {\n // 获取一条消息的 Descriptor。\n Path: \"/messages/{message}\",\n Definitions: []def.Definition{getMessage},\n },\n }...)\n}\n\n// 获取一条消息的 API 定义。\nvar getMessage = def.Definition{\n // 因为只获取一条消息,此处为 Get。\n Method: def.Get,\n Summary: \"Get Message\",\n Description: \"Get a message by id\",\n // 业务函数\n Function: message.GetMessage,\n Parameters: []def.Parameter{\n // 这是一个工具方法,用于快速生成一个参数结构。\n // message 是从 API Path 里获取的。\n def.PathParameterFor(\"message\", \"Message id\"),\n },\n Results: def.DataErrorResults(\"A message\"),\n}\n\n对应的业务函数如下:\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n添加 API 之后,编译运行。然后访问 http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是 json 类型):\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n这里添加的业务函数都是以 Golang 函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考 方法包。\n"},"guides/doc.html":{"url":"guides/doc.html","title":"生成 API 文档","keywords":"","body":"生成 API 文档\n在完成了 API 的开发工作后,我们需要将 API 公开给用户使用。于是我们需要给 API 的用户提供一个文档,方便用户阅读。Nirvana 提供了一个命令用于从项目中生成文档:\n$ nirvana api --serve=\":8081\"\n默认情况下,nirvana api 会读取 pkg/apis 并使用 8080 端口提供服务。为了防止端口冲突,可以使用 --serve 设置监听的 IP 和端口。\n该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):\nINFO 0702-15:47:52.010+08 api.go:87 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:47:53.499+08 api.go:95 | Project root directory is /home/go/src/myproject\nINFO 0702-15:47:53.500+08 api.go:179 | Listening on 127.0.0.1:8081. Please open your browser to view api docs\n这就表示文档生成成功,并且提供了一个 HTTP 服务用于访问这个文档。打开浏览器,访问 http://127.0.0.1:8081 即可查看文档。\n文档截图如下:\n\n"},"guides/client.html":{"url":"guides/client.html","title":"生成客户端","keywords":"","body":"生成客户端\n生成代码\nAPI 文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行 API 调用,可以生成客户端以供使用:\n$ nirvana client\n该命令默认会在 ./client 目录下生成 golang 客户端代码,可以通过 --output 指定其他输出目录(目前仅支持生成 golang 客户端,其他语言客户端尚不支持)。\n输出日志如下(项目路径和日志时间会有所不同):\nINFO 0702-15:50:54.156+08 client.go:73 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:50:55.609+08 client.go:81 | Project root directory is /home/go/src/myproject\nINFO 0702-15:50:55.610+08 client.go:106 | Generated golang client package myproject/client\n生成的客户端代码如下:\nclient\n├── client.go\n└── v1\n ├── client.go\n └── types.go\n./client.go 生成代码:\npackage client\n\nimport (\n v1 \"myproject/client/v1\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a versioned client.\ntype Interface interface {\n // V1 returns v1 client.\n V1() v1.Interface\n}\n\n// Client contains versioned clients.\ntype Client struct {\n v1 *v1.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (Interface, error) {\n c := &Client{}\n var err error\n\n c.v1, err = v1.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) Interface {\n return &Client{\n v1: v1.MustNewClient(cfg),\n }\n}\n\n// V1 returns a versioned client.\nfunc (c *Client) V1() v1.Interface {\n return c.v1\n}\n\n./v1/client.go 生成代码\npackage v1\n\nimport (\n \"context\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes v1 client.\ntype Interface interface {\n // GetMessage return a message by id.\n GetMessage(ctx context.Context, message int) (message1 *Message, err error)\n // ListMessages returns all messages.\n ListMessages(ctx context.Context, count int) (messages []Message, err error)\n}\n\n// Client for version v1.\ntype Client struct {\n rest *rest.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (*Client, error) {\n client, err := rest.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n return &Client{client}, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) *Client {\n client, err := NewClient(cfg)\n if err != nil {\n panic(err)\n }\n return client\n}\n\n// GetMessage return a message by id.\nfunc (c *Client) GetMessage(ctx context.Context, message int) (message1 *Message, err error) {\n message1 = new(Message)\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages/{message}\").\n Path(\"message\", message).\n Data(message1).\n Do(ctx)\n return\n}\n\n// ListMessages returns all messages.\nfunc (c *Client) ListMessages(ctx context.Context, count int) (messages []Message, err error) {\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages\").\n Query(\"count\", count).\n Data(&messages).\n Do(ctx)\n return\n}\n\n./v1/types.go 生成代码:\npackage v1\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n生成的客户端是版本化的,版本在 nirvana.yaml 中定义。API 依赖的结构体都会被提取出来并生成到 types.go 文件中,方便客户端使用。\n每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考 多客户端整合。\n使用客户端\n客户端的使用非常简单,只需要创建客户端,然后调用相应的 API 函数即可:\nfunc main() {\n cli := client.MustNewClient(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n限制\n目前客户端生成对接口的支持还不完善,仅仅对 io.Reader 和 io.ReadCloser 支持良好,因此在 API 的参数和返回值中,尽量避免使用其他接口。\n"},"concepts/cp.html":{"url":"concepts/cp.html","title":"Consumer && Producer","keywords":"","body":"Consumer and Producer\n包路径: github.com/caicloud/nirvana/service\n在 HTTP 请求中,Content-Type 说明了请求和响应中的数据类型。为了根据 Content-Type 自动处理数据转换,Nirvana 提供了 Consumer 和 Producer 接口。其中 Consumer 用于将请求体中的数据转换为业务函数需要的类型,而 Producer 则负责将业务函数的返回结果写入到响应体中。 \nNirvana 默认提供的 Consumers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 GET 之类的请求,因此不能转换为任何数据类型。\n\n\ntext/plain\n只能生成 string 和 []byte 类型\n\n\napplication/json\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 json.Unmarshal 进行解析。\n\n\napplication/xml\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 xml.Unmarshal 进行解析。\n\n\napplication/octet-stream\n只能生成 string 和 []byte 类型\n\n\napplication/x-www-form-urlencoded\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 类型,因此一般不转换为具体类型。\n\n\nmultipart/form-data\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 或 File 类型,因此一般不转换为具体类型。\n\n\n\nNirvana 默认提供的 Producers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 204 之类的响应,没有响应体,不需要写入。\n\n\ntext/plain\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\napplication/json\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 json.Marshal 将数据写入到响应。\n\n\napplication/xml\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 xml.Marshal 将数据写入到响应。\n\n\napplication/octet-stream\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\n\n添加 Consumer 和 Producer\n在业务的实际场景中,默认提供的 Consumers 和 Producers 可能不能满足实际使用需求。因此 Nirvana 的 service 包提供了相应的工具用于注册用户自己的 Consumer 和 Producer。\n注册 Consumer\nConsumer 需要实现接口:\n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Consumer:\nif err := service.RegisterConsumer(consumer); err != nil {\n log.Fatal(err)\n}\n\n在接收到 Content-Type 与 consumer 一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个 Consumer 去读取数据并进行类型转换。\n注册 Producer\nProducer 需要实现接口:\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Producer:\nif err := service.RegisterProducer(producer); err != nil {\n log.Fatal(err)\n}\n\n在需要生成 Conetent-Type 于 producer 一致的响应,并且业务函数需要返回数据的时候,就会调用这个 producer 将类型转换为字节数据写入到响应体中。\n快速生成 Consumer 和 Producer 的工具\n通常情况下,我们需要快速添加一些 Consumers 和 Producers,并且他们的行为和 application/octet-stream 一致的时候,那么可以直接使用工具方法:\nserializer := NewSimpleSerializer(contentType)\n\nif err := service.RegisterConsumer(serializer); err != nil {\n log.Fatal(err)\n}\n\nif err := service.RegisterProducer(serializer); err != nil {\n log.Fatal(err)\n}\n\n"},"concepts/operator.html":{"url":"concepts/operator.html","title":"Operator","keywords":"","body":"Operator\n包路径: github.com/caicloud/nirvana/definition\n在每个 API Definition 中,都有一组 Parameters 和 Results。其中 Parameters 和业务函数的参数一一对应,而 Results 则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,Nirvana 提供了 Operator 接口,可用于针对单个参数或返回值进行验证和修改:\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n在没有 Operator 的情况下,Nirvana 从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了 Operator,那么 Nirvana 会从第一个 Operator 的 In() 方法获取类型,\n并且会检查最后一个 Operator 的 Out() 类型是否和业务函数的参数类型一致。\n在实际的使用过程中,并不需要实现这个复杂的接口。Nirvana 提供了两种类型的 Operator:Validator 和 Converter。\nValidator\n包路径: github.com/caicloud/nirvana/operators/validator\nvalidator 包的实现基于 go-playground/validator,提供了用于生成 Operator 的方法:\nfunc Struct(instance interface{}) Validator\nfunc String(tag string) Validator\nfunc Int(tag string) Validator\nfunc Int64(tag string) Validator\nfunc Int32(tag string) Validator\nfunc Int16(tag string) Validator\nfunc Int8(tag string) Validator\nfunc Byte(tag string) Validator\nfunc Uint(tag string) Validator\nfunc Uint64(tag string) Validator\nfunc Uint32(tag string) Validator\nfunc Uint16(tag string) Validator\nfunc Uint8(tag string) Validator\nfunc Bool(tag string) Validator\n\n对于结构体类型,在需要的字段上添加名为 validate 的 tag。\n自定义验证器\n有时候默认的验证器不能覆盖复杂的验证需求,因此 validator 包还提供了方法用于创建自定义验证器:\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n验证器函数必须符合签名 func(ctx context.Context, object AnyType) error。其中 AnyType 是具体要验证的类型,不能使用接口。\nConverter\n包路径: github.com/caicloud/nirvana/operators/converter\n除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此 converter 包提供了工具方法用于将转换函数包装成 Operator:\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter\n\n转换函数必须符合 func f(context.Context, string, AnyType) (AnyType, error)。其中参数的 AnyType 和返回值的 AnyType 可以不同。\n在 Definition 中使用 Operator\n这是一个在 List Messages 的 API 中添加 Operator 的示例:\n// Definition\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: message.ListMessages,\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Operators: []def.Operator{\n validator.Int(\"min=1\"),\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n },\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n// 业务函数\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count uint) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n这个例子中,验证器要求 count 的最小值为 1,并且把 int 类型转换为了 uint 类型。业务函数的参数也响应的变成了 uint 类型。\n注意:Operator 是链式调用的,也就是说上一个 Operator 的返回值会作为下一个 Operator 的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:\nOperators: []def.Operator{\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n validator.Uint(\"min=1\"),\n},\n\n但是一般情况下,始终建议验证器放在前面,转换器放在后面。\n"},"concepts/filter.html":{"url":"concepts/filter.html","title":"Filter","keywords":"","body":"过滤器\n包路径: github.com/caicloud/nirvana/service\n在某些场景下,我们需要从源头对请求进行处理和过滤。Nirvana 提供了 Filter 机制,可以在收到一个请求的时候,立刻进行处理。并根据 Filter 的返回值来确定是直接丢弃该请求还是继续处理。\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nFilter 在整个 Nirvana 框架中处于最高优先级。Filter 返回 false 则表示请求不应该被继续处理,立刻丢弃。\nNirvana 提供的一些 Filters\nRedirectTrailingSlash\n这个过滤器判断 URL Path 尾部是不是存在 /,如果存在就重定向到没有 / 的路径上。\nFillLeadingSlash\n这个过滤器判断 URL Path 首部有没有 /,如果没有就加上 /。\nParseRequestForm\n这个过滤器只针对 application/x-www-form-urlencoded 和 multipart/form-data,然后 Parse 这两种类型的请求体,并转换为 Form 和 File。\n"},"concepts/prefab.html":{"url":"concepts/prefab.html","title":"Prefab","keywords":"","body":"Prefab\n包路径: github.com/caicloud/nirvana/service\nPrefab 是 Nirvana 中一类特殊的 Source。其他的 Source 的数据来源都是来自于请求,而 Prefab 来自于服务端本身。\n// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n可以通过 service 包的 RegisterPrefab() 注册需要的 Prefab。\nPrefab 类型的参数在生成文档和客户端的时候会被忽略,因此不要使用 Prefab 从请求中获取数据。\nNirvana 提供的 Prefab\nContextPrefab\nContextPrefab 是 Nirvana 中实现的唯一一个 Prefab,即 service.ContextPrefab。这个 Prefab 将框架传递给它的与请求绑定的 context 返回回去。\n使用方法如下:\nvar someAPI = def.Definition{\n ...\n Parameters: []def.Parameter{\n ...\n {\n Source: def.Prefab,\n Name: \"context\",\n },\n ...\n },\n ...\n}\n\n只需要将业务函数对应位置的 Parameter 设置为 Prefab,名称为 context 即可。\n但是一般情况下,我们不应该这样使用 ContextPrefab。请参考 Modifier 和 Context\n"},"concepts/modifier.html":{"url":"concepts/modifier.html","title":"Modifier","keywords":"","body":"Modifier\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,每一个 API 都有一个对应的 Definition。在我们实际开发过程中,经常会要求 API 和 业务函数有一致的行为表现。比如每个业务函数的第一个参数都是 Context。在这种场景下,如果每个 Definition 都需要去描述这个参数,那么 Definition 会显得非常冗余。因此 Nirvana 提供了 Definition Modifer 机制,允许在 Definition 生效之前,对 Definition 进行修改。\n这样就能通过 Modifier 完成 Definition 公共部分的构建,而每个 Definition 实际上要填写的部分就是只与自身业务相关的信息。Modifier 如下:\ntype DefinitionModifier func(d *definition.Definition)\n\nNirvana 提供的 Modifiers\n在使用 nirvana init 创建的项目中,可以在 pkg/apis/modifiers 下查看启用的 Modifiers。 \n默认启用的 Modifiers 包括:FirstContextParameter,ConsumeAllIfConsumesIsEmpty,ProduceAllIfProducesIsEmpty,ConsumeNoneForHTTPGet,ConsumeNoneForHTTPDelete,ProduceNoneForHTTPDelete。\nFirstContextParameter\n这个 Modifier 为所有 Definition 的第一个参数添加上名为 context 的 Prefab。启用之后,所有业务函数的第一个参数必须是 context.Context。\nConsumeAllIfConsumesIsEmpty\n这个 Modifier 为所有 Consumes 为空的 Definition 加上 */*。\nProduceAllIfProducesIsEmpty\n这个 Modifier 为所有 Produces 为空的 Definition 加上 */*。\nConsumeNoneForHTTPGet\n这个 Modifier 为所有 HTTP GET 类型的 Definition 加上空的 Consumer,即允许请求体为空。\nProduceNoneForHTTPDelete\n这个 Modifier 为所有 HTTP Delete 类型的 Definition 加上空的 Producer,即允许响应体为空。\nLastErrorResult\n这个 Modifier 为所有的 Definition 的最后一个返回值加上 definition.Error。\n"},"concepts/middleware.html":{"url":"concepts/middleware.html","title":"Middleware","keywords":"","body":"中间件\n包路径: github.com/caicloud/nirvana/definition\nNirvana 中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下: \n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过 Chain 进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。\n中间件添加在 Descriptor 中:\ndef.Descriptor{\n Path: \"/path\",\n Middlewares: []def.Middleware{SomeMiddleware},\n}\n\n添加成功后,所有前缀匹配 /path 的请求都会执行这个中间件。\n注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。\n中间件执行顺序\n如果以下路径都添加了中间件:\n1. /\n2. /path\n3. /path/path2\n\n那么如果存在请求 /path/path2/others 且成功匹配的情况下,中间件的执行按照 1 -> 2 -> 3 的顺序。\n中间件只与 URL Path 有关,因此如果多个 Descriptor 中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。\n"},"concepts/context.html":{"url":"concepts/context.html","title":"Context","keywords":"","body":"Context\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,Context 用于传递请求的上下文。Context 中包含 HTTP 的 Request 和 ResponseWriter。可是使用 service 包的 HTTPContextFrom() 方法获得 HTTP Context。HTTP Context 相关接口如下:\n// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\nNirvana 框架会为每个请求构建这样的 HTTPContext。如有必要,可以通过这些接口拿到与请求相关的所有数据。\n在一个请求路由匹配成功后,Nirvana 会把对应的 HTTPContext 传递给中间件,然后由中间件调用链继续传递。最终经由 ContextPrefab 传递给业务函数。\n中间件不应该修改 HTTPContext,除非您明确知道如何修改。\n"},"concepts/source.html":{"url":"concepts/source.html","title":"Parameter Generator","keywords":"","body":"Parameter Generator\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 8 种类型的 Source:Path,Query,Header,Form,File,Body,Auto,Prefab。\n每种 Source 对应一个 Generator。这些 Generator 负责一种类型的参数的验证和类型转换工作。\n// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n如果 Nirvana 默认提供的 Generator 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Generator:\n// RegisterParameterGenerator register a generator.\nfunc RegisterParameterGenerator(generator ParameterGenerator) error\n\n"},"concepts/destination.html":{"url":"concepts/destination.html","title":"Destination Handler","keywords":"","body":"Destination Handler\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 3 种类型的 Destination:Meta,Data,Error。\n每种 Destination 对应一个 Handler。这些 Handler 负责一种类型的返回结果的数据转换工作。\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n如果 Nirvana 默认提供的 Handler 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Handler:\n// RegisterDestinationHandler registers a type handler.\nfunc RegisterDestinationHandler(handler DestinationHandler) error\n\nDefinition Handler 存在优先级,优先级高的 Handler 先执行。并且执行之后会返回 goon,用来确定是否需要执行下一个 Handler。\n"},"concepts/error.html":{"url":"concepts/error.html","title":"错误包","keywords":"","body":"错误包\n包路径: github.com/caicloud/nirvana/errors\nError 介绍\n在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在 golang 中,错误需要实现 error 接口。即:\ntype error interface {\n Error() string\n}\n\n这种形式的 error 接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此 Nirvana 对于这种错误,都会以 500 Internal Server Error 的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。\n于是 Nirvana 提供了一个新的接口:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\n在业务函数中,仍然以 error 的形式返回错误。但是框架会检查返回的错误是否实现了 Error 接口。如果实现了,就会以 Code() 的返回值作为 HTTP 状态码,Message() 的返回值作为数据返回。\nerrors 包\n为了方便使用,Nirvana 提供了 errors 包用于生成 error。创建 error 的方式有两种:\n\n方法一\n\nvar somethingNotCorrect = errors.BadRequest.Build(\"ProjectName:ModuleName:SomethingNotCorrect\", \"${name} is not correct\")\n\nfunc SomeFunction() error {\n // Do something\n return somethingNotCorrect.Error(something.Name)\n}\n\n\n方法二\n\nfunc SomeFunction() error {\n return errors.BadRequest.Error(\"${name} is not correct\", something.Name)\n}\n\n这两种方法都可以创建 error,但是第一种方法比第二种多出更多特性:\n\n第一种方法支持使用 somethingNotCorrect.Derived(err) 的形式判断一个 err 是否由这个错误工厂生成。\n第一种方法带有 Reason,方便客户端判断错误类型。\n\n因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。\nerror 的 Reason\n在实际的业务中,HTTP 状态码并不足以表达业务中繁复的错误。因此我们将 HTTP 状态码视为错误大类(比如 NotFound 表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。\n这样做有两个优势:\n\n通过 HTTP 状态码即可大致判断一个错误的行为\n通过具体错误的 Reason 来唯一确定一个错误\n\n在常见的商业 API 中,我们也经常看到使用数字 ID 来标志的错误。但是数字 ID 的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的 ID,也就是 Reason。\n我们建议 Reason 的格式满足:\n项目名[:模块名]:错误名\n国际化\n使用 errors 包生成的错误会记录每个占位符的名称和值,保存在 data 字段中,可以在客户端使用 data 里的值进行文本国际化。\n使用范例\n在业务函数中使用 errors:\n\nvar messageNotExist = errors.NotFound.Build(\"MyProject:Message:MessageNotExist\", \"there is no message with id ${id}\")\n\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n if id > 100 {\n return nil, messageNotExist.Error(id)\n }\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n编译运行后可以得到结果:\n访问 curl http://localhost:8080/apis/v1/messages/100,即可得到一个 200 的响应,响应体为:\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n访问 curl http://localhost:8080/apis/v1/messages/101,即可得到一个 404 的响应,响应体为:\n{\"reason\":\"MyProject:Message:MessageNotExist\",\"message\":\"there is no message with id 101\",\"data\":{\"id\":\"101\"}}\n"},"concepts/method.html":{"url":"concepts/method.html","title":"方法包","keywords":"","body":"方法包\n包路径: github.com/caicloud/nirvana/definition/method\n在 Nirvana 中,业务函数是 API 请求的 Handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。\n为了保证业务与 API 定义的无关性,Nirvana 提供了 method 包,用于分离实例的创建和 API 定义。\nAPI 定义:\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: method.Get(&message.Container{}, \"ListMessages\"),\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n业务方法:\n// Container contains example title and content of messages.\ntype Container struct {\n Title string\n Content string\n}\n\n// NewContainer creates Container\nfunc NewContainer(title, content string) *Container {\n return &Container{title, content}\n}\n\n// ListMessages returns all messages.\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \nmain.go 中创建实例并通过 Put() 函数放到方法容器中(需要在服务启动之前完成):\nmethod.Put(message.NewContainer(\"Method Example\", \"Method Content\"))\n\n然后编译运行,访问 http://localhost:8080/apis/v1/messages 即可得到返回结果:\n[{\"id\":0,\"title\":\"Method Example 0\",\"content\":\"Method Content 0\"},{\"id\":1,\"title\":\"Method Example 1\",\"content\":\"Method Content 1\"},{\"id\":2,\"title\":\"Method Example 2\",\"content\":\"Method Content 2\"},{\"id\":3,\"title\":\"Method Example 3\",\"content\":\"Method Content 3\"},{\"id\":4,\"title\":\"Method Example 4\",\"content\":\"Method Content 4\"},{\"id\":5,\"title\":\"Method Example 5\",\"content\":\"Method Content 5\"},{\"id\":6,\"title\":\"Method Example 6\",\"content\":\"Method Content 6\"},{\"id\":7,\"title\":\"Method Example 7\",\"content\":\"Method Content 7\"},{\"id\":8,\"title\":\"Method Example 8\",\"content\":\"Method Content 8\"},{\"id\":9,\"title\":\"Method Example 9\",\"content\":\"Method Content 9\"}]\nmethod 包介绍\nmethod 包是一个全局实例容器,每种类型对应一个实例。\n具体实例类型\n使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的 *message.Container 实例。\n其中 Put(ins insterface{}) 函数用于将一个实例放置到全局容器中,形成 类型-实例 的对应关系。\nGet(typIns interface{}, method string) 用于生成一个匿名函数,生成的函数的签名没有方法的 receiver 部分,例如:\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error)\n生成匿名函数:\nfunc (ctx context.Context, count int) ([]Message, error)\n但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。\n这就是 Get() 函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会 panic。\n注意,Get() 函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说 &Container{} 和 (*Container)(nil) 是一样的。\n接口实例类型\n除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。\n设置接口实例:\nmethod.PutInterface((*ArbitraryInterface)(nil), instance)\n\n获取接口实例:\nmethod.Get((*ArbitraryInterface)(nil), \"MethodName\")\n\n"},"concepts/configurer.html":{"url":"concepts/configurer.html","title":"配置器机制","keywords":"","body":"配置器机制\n包路径: github.com/caicloud/nirvana\nNirvana 在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。\nNirvana 的 Config 实现了 Configurer 机制,用于单独配置每一项信息:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config {\n ...\n}\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\nNirvana 提供的 Configurers\nIP(ip string) Configurer\n设置监听的 IP 地址。\nPort(port uint16) Configurer\n设置监听的端口。\nTLS(certFile, keyFile string) Configurer\n设置 TLS 证书和密钥。\nLogger(logger log.Logger) Configurer\n设置 Server 在运行过程中使用的 Logger,用于输出错误。\nFilter(filters ...service.Filter) Configurer\n添加 Filter。\nModifier(modifiers ...service.DefinitionModifier) Configurer\n添加 Modifier。\nDescriptor(descriptors ...definition.Descriptor) Configurer\n添加 API 描述。所有的 API 都通过这个 Configurer 添加到 Nirvana 的 Server 里。\n"},"concepts/plugin.html":{"url":"concepts/plugin.html","title":"插件机制","keywords":"","body":"插件机制\nNirvana 的 Config 除了使用 Configurer 配置基本信息以外,还提供了插件机制。\n插件接口:\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n插件实现了这个接口之后,即可通过 nirvana 包提供的方法进行注册:\nfunc RegisterConfigInstaller(ci ConfigInstaller)\n\n一般情况下,插件应该通过插件 package 的 init() 进行注册。然后提供相应的 Configurer 在 Nirvana 的 Config 中添加插件配置。\nPlugin Framework\n一个基本的插件框架如下:\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\n"},"concepts/clients.html":{"url":"concepts/clients.html","title":"多客户端整合","keywords":"","body":"多客户端整合\n默认情况下,我们会为每个服务生成如下结构的客户端:\nclient\n├── client.go\n├── v1\n│ ├── client.go\n│ └── types.go\n└── v2\n\n在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:\nclientset\n├── svca\n│ ├── client.go\n│ ├── v1\n│ │ ├── client.go\n│ │ └── types.go\n│ └── v2\n└── svcb\n ├── client.go\n ├── v1\n │ ├── client.go\n │ └── types.go\n └── v2\n整合客户端\n为了演示这个过程,我们逐步构建这个项目。\n创建项目\n首先创建 clientset 项目,用于保存所有服务的客户端:\n$ cd $GOPATH/src/\n$ mkdir clientset\n然后创建两个服务项目(仅用于演示):\n$ nirvana init svca\n$ nirvana init svcb\n即创建了 svca 和 svcb 两个服务项目。\n生成客户端\n生成 svca 的客户端:\n$ cd $GOPATH/src/svca\n$ nirvana client --output ../clientset/svca\n生成 svcb 的客户端:\n$ cd $GOPATH/src/svcb\n$ nirvana client --output ../clientset/svcb\n此时 clientset 的项目结构如下:\nclientset\n├── svca\n│ ├── client.go\n│ └── v1\n│ ├── client.go\n│ └── types.go\n└── svcb\n ├── client.go\n └── v1\n ├── client.go\n └── types.go\n这样所有客户端都在一个项目中,不需要依赖其他服务项目。\n统一网关访问\n在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。\n创建 ClientSet\n在 clientset 中创建 clientset.go:\n$ cd $GOPATH/src/clientset\n$ touch clientset.go\nclientset.go 代码如下:\npackage clientset\n\nimport (\n svca \"clientset/svca\"\n svcb \"clientset/svcb\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a clientset.\ntype Interface interface {\n // SvcA returns a client for svc a.\n SvcA() svca.Interface\n // SvcB returns a client for svc b.\n SvcB() svcb.Interface\n}\n\n// ClientSet contains multiple clients.\ntype ClientSet struct {\n svcA svca.Interface\n svcB svcb.Interface\n}\n\n// NewClientSet creates a new client set.\nfunc NewClientSet(cfg *rest.Config) (Interface, error) {\n c := &ClientSet{}\n var err error\n\n c.svcA, err = svca.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n c.svcB, err = svcb.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClientSet creates a new client set or panic if an error occurs.\nfunc MustNewClientSet(cfg *rest.Config) Interface {\n c, err := NewClientSet(cfg)\n if err != nil {\n panic(err)\n }\n return c\n}\n\n// SvcA returns a client for svc a.\nfunc (c *ClientSet) SvcA() svca.Interface {\n return c.svcA\n}\n\n// SvcB returns a client for svc b.\nfunc (c *ClientSet) SvcB() svcb.Interface {\n return c.svcB\n}\n\n使用 ClientSet\nClientSet 的使用方法和普通 Client 没有太大区别:\nfunc main() {\n cli := clientset.MustNewClientSet(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.SvcA().V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n"},"plugins/logger.html":{"url":"plugins/logger.html","title":"系统日志插件","keywords":"","body":"系统日志插件\n包路径: github.com/caicloud/nirvana/plugins/logger\n系统日志插件是一个伪插件。这个插件本身没有按照 Plugin Framework 编写,只是为了通过 config 包的 Command 暴露 Flag。\n这个插件暴露三个选项:\n// Option contains basic configurations of logger.\ntype Option struct {\n // Debug is logger level.\n Debug bool `desc:\"Debug mode. Output all logs\"`\n // Level is logger level.\n Level int32 `desc:\"Log level. This field is no sense if debug is enabled\"`\n // OverrideGlobal modifies nirvana global logger.\n OverrideGlobal bool `desc:\"Override global logger\"`\n}\n启用 Debug 模式后,Level 就无效。如果 OverrideGlobal 为 true,那么除了设置当前 Server 的 logger 以外,还会设置全局的 logger。\n"},"plugins/reqlog.html":{"url":"plugins/reqlog.html","title":"请求日志插件","keywords":"","body":"请求日志插件\n包路径: github.com/caicloud/nirvana/plugins/reqlog\n请求日志插件会添加一个在 / 上的中间件,用于打印所有路由匹配成功的请求的日志。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nDefault() nirvana.Configurer\n启用插件并使用默认配置\n\n\nLogger(l log.Logger) nirvana.Configurer\n设置 Logger\n\n\nDoubleLog(enable bool) nirvana.Configurer\n启用或关闭双重日志,即请求开始一条日志,请求结束一条日志\n\n\nSourceAddr(enable bool) nirvana.Configurer\n启用或关闭显示源地址\n\n\nRequestID(enable bool) nirvana.Configurer\n启用或关闭显示请求 ID \n\n\nRequestIDKey(key string) nirvana.Configurer\n设置请求 ID 的 key,默认为 X-Request-ID\n\n\n\n"},"plugins/metrics.html":{"url":"plugins/metrics.html","title":"监控指标插件","keywords":"","body":"监控指标插件\n包路径: github.com/caicloud/nirvana/plugins/metrics\n监控指标插件基于 Prometheus,提供了一个 API 用于暴露服务端指标。\n启用插件后,可以直接向 prometheus 包注册指标。采集端可以通过 /metrics 采集指标数据。\nAPI 路径 /metrics 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /metrics\n\n\nNamespace(ns string) nirvana.Configurer\n设置 Prometheus Namespace\n\n\n\n"},"plugins/tracing.html":{"url":"plugins/tracing.html","title":"请求追踪插件","keywords":"","body":"请求追踪插件\n包路径: github.com/caicloud/nirvana/plugins/tracing\n请求追踪插件基于 OpenTracing 接口实现了请求跟踪机制,会在 / 上添加一个中间件用于提取 Tracing 信息。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nCustomTracer(tracer opentracing.Tracer) nirvana.Configurer\n使用自定义的 Tracer\n\n\nDefaultTracer(serviceName string, agentHostPort string) nirvana.Configurer\n使用默认的 Tracer\n\n\nAddHook(hook Hook) nirvana.Configurer\n设置请求 Hook\n\n\n\nHook 接口:\n// Hook allows you to custom information for span.\ntype Hook interface {\n // Exec before request processing\n Before(ctx context.Context, span opentracing.Span)\n // Exec after request processing\n After(ctx context.Context, span opentracing.Span)\n}\n\n"},"plugins/profiling.html":{"url":"plugins/profiling.html","title":"性能分析插件","keywords":"","body":"性能分析插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n性能分析插件添加与 net/http/pprof 一致的 API,用于取得服务运行时信息。\n默认情况下,插件会添加四个 Descriptor:\n\n/debug/pprof\n/debug/pprof/profile\n/debug/pprof/symbol\n/debug/pprof/trace\n\n前缀路径 /debug/pprof 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置路径前缀,默认值为 /debug/pprof\n\n\n\n"},"plugins/version.html":{"url":"plugins/version.html","title":"版本信息插件","keywords":"","body":"版本信息插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n版本信息插件提供一个 API 返回服务的版本信息。API 路径默认为 /version。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /version\n\n\nName(name string) nirvana.Configurer\n设置服务名称\n\n\nVersion(version string) nirvana.Configurer\n设置服务版本号\n\n\nHash(hash string) nirvana.Configurer\n设置服务 hash 值。一般情况下可以设置为代码的 commit 值\n\n\nDescription(description string) nirvana.Configurer\n设置服务的描述\n\n\n\n"},"plugins/healthcheck.html":{"url":"plugins/healthcheck.html","title":"健康检查插件","keywords":"","body":"健康检查插件\n包路径: github.com/caicloud/nirvana/plugins/healthcheck\n健康检查插件提供一个 API 返回服务当前是否健康。API 默认路径为 /healthz。\n插件提供了一个函数接口:\ntype HealthChecker func(ctx context.Context) error\n如果服务正常,则 checker 应该返回 nil。如果服务异常,则返回相应的错误。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /healthz\n\n\nChecker(checker HealthChecker) nirvana.Configurer\n设置 Checker 用于检查服务是否正常。\n\n\n\n"},"topics/start.html":{"url":"topics/start.html","title":"准备工作","keywords":"","body":"准备工作\n开发工具介绍\n\ngolang:https://golang.org/dl/\ndep:https://github.com/golang/dep\ngometalinter:https://github.com/alecthomas/gometalinter\n\n一般情况下,我们使用最新版本的 golang 进行开发,但是需要保证两个 golang 大版本的兼容性。即使用 1.10.x 开发的情况下,需要保持对 1.9.x 的兼容性。\n另外 Nirvana 只使用 dep 进行依赖管理,不要使用其他依赖管理工具对 vendor 进行任何更新操作。并且所有的依赖需要放置在根目录的 vendor 中,不能在任何子目录下使用 vendor。\n除了常规的 go test 测试以外,还需要使用 gometalinter 进行代码检查,gometalinter 的配置文件在根目录的 config.json 中。\n工作流程\n在 githuh 上 Fork Nirvana 到自己的账户下,然后下载源码到本地开发目录中:\n$ cd $GOPATH/src\n$ mkdir -p github.com/caicloud/\n$ cd github.com/caicloud/\n$ git clone git@github.com:{your account}/nirvana.git\n在完成修改并提交到自己的 repo 之后,通过 github PR 的形式向 Nirvana 提交代码。\n框架设计概览\nNirvana 框架的设计核心思想是:隔离 API 定义和业务逻辑实现\n也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。\nNirvana 包之间的依赖关系:\n\n\n其中 log 与 errors 是基础包,分别负责日志基础接口和错误处理基础接口。\ndefinition 包包含 Nirvana 框架的 API 定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。\ndefinition/method 帮助用户把实例方法转换为 definition 函数。请参考 方法包。\noperators 中包含了两个组件功能实现了 converters 和 validators,用于 API 参数的类型转换和数据验证。\nservice/router 包实现了基于前缀树的路由和中间件功能。\nservice 包实现了框架 API 路由和处理的所有功能。\nnirvana 包实现了 API Server 以及插件化功能。\nplugins 中包含了许多实现了 nirvana 插件接口的插件。\nconfig 包实现了 Nirvana Command 功能,并提供了从 flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用 Nirvana 的入口包。\nutils 包包含多个工具用于 API 生成,客户端代码生成,项目结构生成。\ncmd/nirvana 是 Nirvana 的主要命令,利用 utils 包帮助用户快速构建项目。\n\n在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。\n"},"topics/log.html":{"url":"topics/log.html","title":"log","keywords":"","body":"log 包\nlog 包提供了一组基础的日志 API 和一个使用了 stderr 进行输出的标准实现。\n标准接口如下:\n// Level is log level of verboser. We strongly recommend you to\n// follow the rules:\n// 1. Use LevelDebug for debug log.\n// 2. Use 1 for important but not frequent log.\n// 3. Use 2 for important and frequent log.\n// 4. Use 3 for not important and not frequent log.\n// 5. Use 4 for not important but frequent log.\n// 6. Use [5, LevelDebug) only if you want to custom log levels.\ntype Level int32\n\nconst (\n // LevelDebug is for debug info.\n LevelDebug Level = math.MaxInt32\n)\n\n// Severity has four classes to correspond with log situation.\ntype Severity string\n\nconst (\n // SeverityInfo is for usual log.\n SeverityInfo Severity = \"INFO\"\n // SeverityWarning is for warning.\n SeverityWarning Severity = \"WARN\"\n // SeverityError is for error.\n SeverityError Severity = \"ERROR\"\n // SeverityFatal is for panic error. The severity means that\n // a logger will output the error and exit immediately.\n // It can't be recovered.\n SeverityFatal Severity = \"FATAL\"\n)\n\n// Verboser is an interface type that implements Info(f|ln) .\n// See the documentation of V for more information.\ntype Verboser interface {\n // Info logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Info(...interface{})\n // Infof logs to the INFO log.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Infof(string, ...interface{})\n // Infoln logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Infoln(...interface{})\n}\n\n// Logger provides a set of methods to output log.\ntype Logger interface {\n Verboser\n // V reports whether verbosity at the call site is at least the requested level.\n // The returned value is a Verboser, which implements Info, Infof\n // and Infoln. These methods will write to the Info log if called.\n V(Level) Verboser\n // Warning logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Warning(...interface{})\n // Warningf logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Warningf(string, ...interface{})\n // Warningln logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Warningln(...interface{})\n // Error logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Error(...interface{})\n // Errorf logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Errorf(string, ...interface{})\n // Errorln logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Errorln(...interface{})\n // Fatal logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Fatal(...interface{})\n // Fatalf logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Fatalf(string, ...interface{})\n // Fatalln logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Fatalln(...interface{})\n // Clone clones current logger with new wrapper.\n // A positive wrapper indicates how many wrappers outside the logger.\n // A negative wrapper indicates how many wrappers should be stripped.\n Clone(wrapper int) Logger\n}\n\n这套日志 API 参考了 glog 的 golang API,并且允许用户接入其他日志系统。\n在实现一个自定义的 logger 之前,需要知道以下几件事情:\n\nlog 包有一个默认的 logger,使用的是 StdLogger。可以通过 SetDefaultLogger() 变更。\n对于不需要输出日志的场景,使用 SilentLogger 的实例而不是 nil.\n正确实现 logger 的 Clone 方法。Clone 方法用于在对 logger 进行包装的时候,获取正确层级的调用栈信息。\n在 Fatal* 时候,使用 os.Exit(1) 进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。\n\n"},"topics/errors.html":{"url":"topics/errors.html","title":"errors","keywords":"","body":"errors 包\nerrors 包类似于标准库的 errors 包,但是提供了方法用于生成格式化的错误和错误判断。\nerrors 包中存在三个概念,分别是 Builder,Factory 和 Error。其中 Builder 用于构建 Factory,Factory 则用于构建特定的 Error。\nFactory 接口如下:\n// Factory can create error from a fixed format.\ntype Factory interface {\n // Error generates an error from v.\n Error(v ...interface{}) error\n // Derived checks if an error was derived from current factory.\n Derived(e error) bool\n}\n\nError 接口如下(这个接口并没有显式定义在 errors 包中):\ntype Error interface {\n error\n Code() int\n Message() interface{}\n}\n\n首先看 Facotry 的两个方法:\n\nError 用于传入参数输出一个真正的错误。\nDerived 则用于判断一个错误是否是由当前的 Factory 生成。\n这样就能够非常方便的错误创建和错误判断了。\n\nFactory 是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同 string format,比如 \"${user} is not found\")。\n通常情况下,有 Factory 和 Error 就足够了。但是为了让错误能够以 HTTP API 的形式向客户端返回,我们还需要给 Factory 加上一些附加属性,用来表示返回的错误码等信息。\n因此在 Factory 之上,构建了 Builder 接口,用于创建具有一类特征的 Factory(比如一类表示 NotFound 的错误)。\nBuilder 接口如下:\n// Builder can build error factories and errros.\ntype Builder interface {\n // Build builds a factory to generate errors with predefined format.\n Build(reason Reason, format string) Factory\n // Error immediately creates an error without reason.\n Error(format string, v ...interface{}) error\n}\n\nBuilder 可以构建带有 reason 和 format 的 Factory。也直接提供了 Error 方法用于直接创建出 Error。\n目前 errors 包提供的 Builder 主要是以 HTTP 状态码作为基础的:\n// These factory builders is used to build error factory.\nvar (\n BadRequest = newKind(400) // RFC 7231, 6.5.1\n Unauthorized = newKind(401) // RFC 7235, 3.1\n PaymentRequired = newKind(402) // RFC 7231, 6.5.2\n Forbidden = newKind(403) // RFC 7231, 6.5.3\n NotFound = newKind(404) // RFC 7231, 6.5.4\n MethodNotAllowed = newKind(405) // RFC 7231, 6.5.5\n NotAcceptable = newKind(406) // RFC 7231, 6.5.6\n ProxyAuthRequired = newKind(407) // RFC 7235, 3.2\n RequestTimeout = newKind(408) // RFC 7231, 6.5.7\n Conflict = newKind(409) // RFC 7231, 6.5.8\n Gone = newKind(410) // RFC 7231, 6.5.9\n LengthRequired = newKind(411) // RFC 7231, 6.5.10\n PreconditionFailed = newKind(412) // RFC 7232, 4.2\n RequestEntityTooLarge = newKind(413) // RFC 7231, 6.5.11\n RequestURITooLong = newKind(414) // RFC 7231, 6.5.12\n UnsupportedMediaType = newKind(415) // RFC 7231, 6.5.13\n RequestedRangeNotSatisfiable = newKind(416) // RFC 7233, 4.4\n ExpectationFailed = newKind(417) // RFC 7231, 6.5.14\n Teapot = newKind(418) // RFC 7168, 2.3.3\n UnprocessableEntity = newKind(422) // RFC 4918, 11.2\n Locked = newKind(423) // RFC 4918, 11.3\n FailedDependency = newKind(424) // RFC 4918, 11.4\n UpgradeRequired = newKind(426) // RFC 7231, 6.5.15\n PreconditionRequired = newKind(428) // RFC 6585, 3\n TooManyRequests = newKind(429) // RFC 6585, 4\n RequestHeaderFieldsTooLarge = newKind(431) // RFC 6585, 5\n UnavailableForLegalReasons = newKind(451) // RFC 7725, 3\n\n InternalServerError = newKind(500) // RFC 7231, 6.6.1\n NotImplemented = newKind(501) // RFC 7231, 6.6.2\n BadGateway = newKind(502) // RFC 7231, 6.6.3\n ServiceUnavailable = newKind(503) // RFC 7231, 6.6.4\n GatewayTimeout = newKind(504) // RFC 7231, 6.6.5\n HTTPVersionNotSupported = newKind(505) // RFC 7231, 6.6.6\n VariantAlsoNegotiates = newKind(506) // RFC 2295, 8.1\n InsufficientStorage = newKind(507) // RFC 4918, 11.5\n LoopDetected = newKind(508) // RFC 5842, 7.2\n NotExtended = newKind(510) // RFC 2774, 7\n NetworkAuthenticationRequired = newKind(511) // RFC 6585, 6\n)\n\n这个包方便了用户创建能够被 Nirvana 识别的错误,但是如果业务逻辑中如果不希望引入对 errors 包的依赖,可以自行实现错误包,只要产出的错误符合 Error 接口即可。\n"},"topics/definition.html":{"url":"topics/definition.html","title":"definition","keywords":"","body":"definition 包\ndefinition 包包含了 Nirvana 的 API 定义,用于描述 API 的参数与返回值。\n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n// Method is an alternative of HTTP method. It's more clearer than HTTP method.\n// A definition method binds a certain HTTP method and a success status code.\ntype Method string\n\nconst (\n // List binds to http.MethodGet and code http.StatusOK(200).\n List Method = \"List\"\n // Get binds to http.MethodGet and code http.StatusOK(200).\n Get Method = \"Get\"\n // Create binds to http.MethodPost and code http.StatusCreated(201).\n Create Method = \"Create\"\n // Update binds to http.MethodPut and code http.StatusOK(200).\n Update Method = \"Update\"\n // Patch binds to http.MethodPatch and code http.StatusOK(200).\n Patch Method = \"Patch\"\n // Delete binds to http.MethodDelete and code http.StatusNoContent(204).\n Delete Method = \"Delete\"\n // AsyncCreate binds to http.MethodPost and code http.StatusAccepted(202).\n AsyncCreate Method = \"AsyncCreate\"\n // AsyncUpdate binds to http.MethodPut and code http.StatusAccepted(202).\n AsyncUpdate Method = \"AsyncUpdate\"\n // AsyncPatch binds to http.MethodPatch and code http.StatusAccepted(202).\n AsyncPatch Method = \"AsyncPatch\"\n // AsyncDelete binds to http.MethodDelete and code http.StatusAccepted(202).\n AsyncDelete Method = \"AsyncDelete\"\n)\n\n// Source indicates which place a value is from.\ntype Source string\n\nconst (\n // Path means value is from URL path.\n Path Source = \"Path\"\n // Query means value is from URL query string.\n Query Source = \"Query\"\n // Header means value is from request header.\n Header Source = \"Header\"\n // Form means value is from request body and content type must be\n // \"application/x-www-form-urlencoded\" and \"multipart/form-data\".\n Form Source = \"Form\"\n // File means value is from request body and content type must be\n // \"multipart/form-data\".\n File Source = \"File\"\n // Body means value is from request body.\n Body Source = \"Body\"\n // Auto identifies a struct and generate field values by field tag.\n //\n // Tag name is \"source\". Its value format is \"Source,Name\".\n //\n // ex.\n // type Example struct {\n // Start int `source:\"Query,start\"`\n // ContentType string `source:\"Header,Content-Type\"`\n // }\n Auto Source = \"Auto\"\n // Prefab means value is from a prefab generator.\n // A prefab combines data to generate value.\n Prefab Source = \"Prefab\"\n)\n\n// Destination indicates the target type to place function results.\ntype Destination string\n\nconst (\n // Meta means result will be set into the header of response.\n Meta Destination = \"Meta\"\n // Data means result will be set into the body of response.\n Data Destination = \"Data\"\n // Error means the result is an error and should be treated specially.\n // An error occurs indicates that there is no data to return. So the\n // error should be treated as data and be writed back to client.\n Error Destination = \"Error\"\n)\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Instance is a custom data.\n Instance interface{}\n}\n\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Summary is a one-line brief description of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nDescriptor 结构体包含具有如下含义的字段:\n\nAPI 路径\n可被 Middlewares,Definitions,Children 继承的字段\n其他与 API 路径同等级别的字段\n\n如果希望对 Descriptor 进行扩展,需要遵守上面这些规则。\nDefinition 结构体包含了一个具体的 API 定义:\n\nAPI 方法,这个方法是一个抽象方法,用于描述一种行为(比如 Create)。\nAPI 参数和返回值定义\n其他与具体 API 同等级别的字段\n\n如果希望对 Definition 进行扩展,需要遵守上面这些规则。\nParameter 和 Result 分别对应 API 的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。\n在上面的定义中,存在两个额外功能:\n\n在 Descriptor 中提供了 Middleware\n在 Parameter 和 Result 中,提供了 Operator\n\n其中 Middleware 提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而 Operator 则针对单个的业务参数和返回值,可以对值进行验证和修改。\ndefinition 包除了包含对 API 的定义以外,还提供了一些函数,帮助快速构建 Definitions 和 Operators:\n// MIME types\nconst (\n // acceptTypeAll indicates a accept type from http request.\n // It means client can receive any content.\n // Request content type in header \"Content-Type\" must not set to \"*/*\".\n // It only can exist in request header \"Accept\".\n // In most time, it locate at the last element of \"Accept\".\n // It's default value if client have not set \"Accept\" header.\n MIMEAll = \"*/*\"\n MIMENone = \"\"\n MIMEText = \"text/plain\"\n MIMEJSON = \"application/json\"\n MIMEXML = \"application/xml\"\n MIMEOctetStream = \"application/octet-stream\"\n MIMEURLEncoded = \"application/x-www-form-urlencoded\"\n MIMEFormData = \"multipart/form-data\"\n)\n\n// OperatorFunc creates operator by function.\n// function must has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to identify field.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc OperatorFunc(kind string, f interface{}) Operator\n\n"},"topics/method.html":{"url":"topics/method.html","title":"definition/method","keywords":"","body":"method 包\n在 definition 包中,可以看到 Definition.Function 必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method 包提供了一个实例方法容器,帮助用户把实例方法转换为函数。\n容器如下:\n// Container contains instances and mappings.\ntype Container struct {\n ...\n}\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc (c *Container) Put(instance interface{})\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc (c *Container) PutInterface(iface interface{}, instance interface{})\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc (c *Container) Get(instance interface{}, method string) interface{}\n\n这个实例方法容器分离了方法的 Get 和 Put 过程。也就是可以在声明 API 时,使用 Get 获取某个实例的方法,之后再在服务启动逻辑里 Put 真正的实例,即 Get 可以在 Put 之前使用。\n这个主要是利用了 golang 的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。\nmethod 包还提供了一个全局的 Container:\nvar defaultContainer = NewContainer()\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc Put(instance interface{}) {\n defaultContainer.Put(instance)\n}\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc PutInterface(iface interface{}, instance interface{}) {\n defaultContainer.PutInterface(iface, instance)\n}\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc Get(instance interface{}, method string) interface{} {\n return defaultContainer.Get(instance, method)\n}\n\n一般情况下,用户会使用这个全局的容器。\n"},"topics/converter.html":{"url":"topics/converter.html","title":"operators/converter","keywords":"","body":"converter 包\nconverter 包提供了一个 Converter 实现,帮助用户快速构建名为 converter 的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `converter`.\nconst OperatorKind = \"converter\"\n\n// Converter describes a converter.\ntype Converter interface {\n definition.Operator\n}\n\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter {\n return definition.OperatorFunc(OperatorKind, f)\n}\n\n这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为 Operator。\n"},"topics/validator.html":{"url":"topics/validator.html","title":"operators/validator","keywords":"","body":"validator 包\nvalidator 包提供了一系列的方法帮助用户快速生成用于校验参数的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `validator`.\nconst OperatorKind = \"validator\"\n\n// Category distinguishs validation type based on different Validator implementation.\ntype Category string\n\nconst (\n // CategoryVar indicates that the validator can validate basic built-in types.\n // Types: string, int*, uint*, bool.\n CategoryVar Category = \"Var\"\n // CategoryStruct indicates that the validator can validate struct.\n CategoryStruct Category = \"Struct\"\n // CategoryCustom indicates the validator is a custom validator.\n CategoryCustom Category = \"Custom\"\n)\n\n// Validator describes an interface for all validator.\ntype Validator interface {\n definition.Operator\n // Category indicates validator type.\n Category() Category\n // Tag returns tag.\n Tag() string\n // Description returns description of current validator.\n Description() string\n}\n\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n// Struct returns an operator to validate a structs exposed fields, and automatically validates nested structs, unless otherwise specified\n// and also allows passing of context.Context for contextual validation information.\nfunc Struct(instance interface{}) Validator\n\n// String creates validator for string type.\nfunc String(tag string) Validator\n\n// Int creates validator for int type.\nfunc Int(tag string) Validator\n\n// Int64 creates validator for int64 type.\nfunc Int64(tag string) Validator\n\n// Int32 creates validator for int32 type.\nfunc Int32(tag string) Validator\n\n// Int16 creates validator for int16 type.\nfunc Int16(tag string) Validator\n\n// Int8 creates validator for int8 type.\nfunc Int8(tag string) Validator\n\n// Byte creates validator for byte type.\nfunc Byte(tag string) Validator\n\n// Uint creates validator for uint type.\nfunc Uint(tag string) Validator\n\n// Uint64 creates validator for uint64 type.\nfunc Uint64(tag string) Validator\n\n// Uint32 creates validator for uint32 type.\nfunc Uint32(tag string) Validator\n\n// Uint16 creates validator for uint16 type.\nfunc Uint16(tag string) Validator\n\n// Uint8 creates validator for uint8 type.\nfunc Uint8(tag string) Validator\n\n// Bool creates validator for bool type.\nfunc Bool(tag string) Validator\n\n目前支持三种类型的验证,分别对应 golang 基础类型,结构体类型和自定义类型。目前验证方法基于 gopkg.in/go-playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。\n"},"topics/router.html":{"url":"topics/router.html","title":"service/router","keywords":"","body":"router 包\nrouter 包实现了基于前缀树的路由,并提供了三种类型的路由节点:\n\n字符串类型节点\n正则类型节点(包括一个全匹配类型节点)\n剩余路径类型节点\n\n字符串类型节点:\n// stringNode describes a string router node.\ntype stringNode struct {\n handler\n children\n // prefix is the fixed string to match path.\n prefix string\n}\n\n字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与 prefix 完全匹配。\n正则类型节点:\n// index contains the key and it's index of the submatches.\ntype index struct {\n // Key is the name for the value.\n Key string\n // Pos is the index of value in submatches.\n Pos int\n}\n\n// regexpNode contains information for matching a regexp segment.\ntype regexpNode struct {\n handler\n children\n // indices contains all positions to get values from submatches.\n indices []index\n // exp is the regular expression.\n exp string\n // regexp is a regexp instance to match.\n regexp *regexp.Regexp\n}\n\n正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。\n全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的 .*:\n// fullMatchRegexpNode is an optimizing of RegexpNode.\ntype fullMatchRegexpNode struct {\n handler\n children\n // key is the name for the only value.\n key string\n}\n\n这是对正则表达式的一个常用特例的优化,快速进行全匹配。\n正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个 / 之前。\n剩余路径类型节点:\n// pathNode matches all rest path.\ntype pathNode struct {\n handler\n // key is the key for the rest path.\n key string\n}\n\n这个节点匹配剩余所有路径。\n下面用一个例子来说明这几个节点:\nAPI Path: /apis/v1/{regexp:[a-z]{1,2}}/{fullmatch}/{path:*}\nMatched Path: /apis/v1/ab/something/the/rest/path\nGenerated Nodes:\n String Node: /apis/v1/ -> /apis/v1/\n Regexp Node: regexp:[a-z]{1,2} -> ab\n String Node: / -> /\n Full Match Node: fullmatch:.* -> something\n String Node: / -> /\n Path Node: * -> the/rest/path\n\n一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。\n在上面的路径节点中,每个节点都可以绑定一个 Inspector:\n// Inspector can select an executor to execute.\ntype Inspector interface {\n // Inspect finds a valid executor to execute target context.\n // It returns an error if it can't find a valid executor.\n Inspect(context.Context) (Executor, error)\n}\n\n// Executor executs with a context.\ntype Executor interface {\n // Execute executes with context.\n Execute(context.Context) error\n}\n\n路径匹配完成后,会调用匹配链的最后一个节点的 Inspector 来生成一个能够处理当前的路由上下文的 Executor。Inspector 如果能返回一个 Executor,router 会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个 Executor。如果不能返回 Executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。\n中间件接口如下:\n// RoutingChain contains the call chain of middlewares and executor.\ntype RoutingChain interface {\n // Continue continues to execute the next middleware or executor.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call RoutingChain.Continue() and pass the context.\ntype Middleware func(context.Context, RoutingChain) error\n\n对于中间件而言,处理完当前的任务之后只需要调用 RoutingChain 将 Context 通过 Continue 传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用 Continue 实际上是调用的 Executor,因此所有中间件的 Continue 执行完成之后,请求也处理完成了。\n注:这个包里所有的接口都不会被用户直接使用,用户只能通过 definition 包进行 API 定义,然后由 service 包进行路由构建和匹配。\n"},"topics/service.html":{"url":"topics/service.html","title":"service","keywords":"","body":"service 包\nservice 包实现了 Nirvana 的 API 处理框架:\n Service.ServeHTTP()\n ----------------------\n ↓ ↑\n|-----Filters------| ↑\n ↓ ↑\n|---Router Match---| ↑\n ↓ ↑\n|-------------Middlewares------------|\n ↓ ↑\n|-------------Executor---------------|\n ↓ ↑\n|-ParameterGenerators-|-DestinationHandlers-|\n ↓ ↑\n|------------User Function-----------|\nservice 包的入口是 Builder:\n// Builder builds service.\ntype Builder interface {\n // Logger returns logger of builder.\n Logger() log.Logger\n // SetLogger sets logger to server.\n SetLogger(logger log.Logger)\n // Modifier returns modifier of builder.\n Modifier() DefinitionModifier\n // SetModifier sets definition modifier.\n SetModifier(m DefinitionModifier)\n // Filters returns all request filters.\n Filters() []Filter\n // AddFilters add filters to filter requests.\n AddFilter(filters ...Filter)\n // AddDescriptors adds descriptors to router.\n AddDescriptor(descriptors ...definition.Descriptor) error\n // Middlewares returns all router middlewares.\n Middlewares() map[string][]definition.Middleware\n // Definitions returns all definitions. If a modifier exists, it will be executed.\n Definitions() map[string][]definition.Definition\n // Build builds a service to handle request.\n Build() (Service, error)\n}\n\ntype Service interface {\n http.Handler\n}\n\n// DefinitionModifier is used in Server. It's used to modify definition.\n// If you want to add some common data into all definitions, you can write\n// a customized modifier for it.\ntype DefinitionModifier func(d *definition.Definition)\n\n\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nBuilder 构建 Service 来提供 HTTP 服务。因此 Builder 提供了多个方法用于设置生成服务需要的日志,Definition 修改器,请求过滤器,API 描述符。构建完成的 Service 实际上是一个 http.Handler,用来处理请求。\n其中 Definition 修改器用于在生成路由之前修改 API Definition。请求过滤器则是在 Service 执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。\nBuilder 还会将 API Definition 转换为路由需要的数据结构,涉及到以下内容:\n\n对应 Consumes 和 Produces 的 Consumer 和 ProducerConsumer 针对请求的 body,将数据转换为业务函数需要的数据类型(通常是结构体)。Producer 则是将业务函数的返回值转换并写入到响应的 body 中。 \n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n\n对应 Prefab 类型的 Prefab 生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。service 包里提供了一个 Context Prefab 生成器,简单的将参数里的 context 返回出去,供业务函数使用。// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n\n对应 golang 基础类型的转换器这些转换器一般是用于将请求里的 query,header 等简单字符串数据转换为 golang 的基础类型,供业务函数使用。// Converter is used to convert []string to specific type. Data must have one\n// element at least or it will panic.\ntype Converter func(ctx context.Context, data []string) (interface{}, error)\n\n\n用于封装请求的 ValueContainer这个接口是对 Request 的一次封装,方便获取对应位置的字符串数据。// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n\n用于封装响应的 ResponseWriterResponseWriter 是对 http.ResponseWriter 的一个扩展,提供了一些功能方便中间件使用。// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n\n用于合并请求和响应的 ContextHTTPContext 实现了 Context 接口,包装了请求的信息。作为路由上下文使用。// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\n\n用于生成业务函数的参数的 ParameterGeneratorParameterGenerator 是真正的参数生成器,通过调用 Consumer,Converter,Prefab 等来完成业务函数的参数生成。// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n\n用于将业务函数返回值写入 Response 的 DestinationHandlerDestinationHandler 是业务函数返回值处理器,通过调用 Producer 将返回值转换为字节写入响应中。在 DestinationHandler 中,错误是会进行特殊处理的。如果业务函数返回的错误符合 Error 接口,则会根据这个接口来生成错误码和返回数据结构。\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nconst (\n // HighPriority for error type.\n // If an error occurs, ignore meta and data.\n HighPriority int = 100\n // MediumPriority for meta type.\n MediumPriority int = 200\n // LowPriority for data type.\n LowPriority int = 300\n)\n\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n\n\n注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。\n"},"topics/nirvana.html":{"url":"topics/nirvana.html","title":"nirvana","keywords":"","body":"nirvana 包\nnirvana 包在根目录中,实现了 Nirvana Server 和插件系统。这个包放置在根目录中是因为这个包是 Nirvana 提供的用于生成 API Server 的顶级包,而且其依赖的所有包只来自 Nirvana 自身和标准库(config 包依赖了 nirvana 包和其他第三方的包,实际上是一个借助了 Nirvana 和第三方功能的扩展)。\nServer 接口如下:\n// Server is a complete API server.\n// The server contains a router to handle all requests form clients.\ntype Server interface {\n // Serve starts to listen and serve requests.\n // The method won't return except an error occurs.\n Serve() error\n // Shutdown gracefully shuts down the server without interrupting any\n // active connections.\n Shutdown(ctx context.Context) error\n // Builder create a service builder for current server. Don't use this method directly except\n // there is a special server to hold http services. After server shutdown, clean resources via\n // returned cleaner.\n // This method always returns same builder until cleaner is called. Then it will\n // returns new one.\n Builder() (builder service.Builder, cleaner func() error, err error)\n}\n\n创建 Server 需要使用 Config:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Locked checks if the config is locked.\nfunc (c *Config) Locked() bool\n\n// IP returns listenning ip.\nfunc (c *Config) IP() string\n\n// Port returns listenning port.\nfunc (c *Config) Port() uint16\n\n// Logger returns logger.\nfunc (c *Config) Logger() log.Logger\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config\n\n// Config gets external config by name. This method is for plugins.\nfunc (c *Config) Config(name string) interface{}\n\n// Set sets external config by name. This method is for plugins.\n// Set a nil config will delete it.\nfunc (c *Config) Set(name string, config interface{})\n\n// NewServer creates a nirvana server. After creation, don't modify\n// config. Also don't create another server with current config.\nfunc NewServer(c *Config) Server\n\n在 Config 中,存在一些 Server 级别的配置,这些配置是针对当前服务的。而对应的 Configurer 也在当前包中。如果需要对配置进行扩展,增强 Server 功能,则可以增加相应字段,否则应该使用插件机制增加功能。\n在 Config 中可以看到 Config 和 Set 方法,这两个方法就是提供给插件允许插件设置自身的配置的。\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的 Install 方法安装插件。\n"},"topics/config.html":{"url":"topics/config.html","title":"config","keywords":"","body":"config 包\nconfig 包利用 github.com/spf13/cobra 和 github.com/spf13/viper 实现了 Nirvana Command 和配置读取,为 Nirvana 服务启动提供了命令行支持。\nNirvanaCommand 接口如下:\n// NirvanaCommand is a nirvana command.\ntype NirvanaCommand interface {\n // EnablePlugin enables plugins.\n EnablePlugin(plugins ...Plugin) NirvanaCommand\n // AddOption will fill up options from flags/ENV/config after executing.\n // A non-empty prefix is recommended. It's used to divide option namespaces.\n AddOption(prefix string, options ...CustomOption) NirvanaCommand\n // Add adds a field by key.\n // If you don't have any struct to describe an option, you can use the method to\n // add a single field into nirvana command.\n // `pointer` must be a pointer to golang basic data type (e.g. *int, *string).\n // `key` must a config key. It's like 'nirvana.ip' and 'myconfig.name.firstName'.\n // The key will be converted to flag and env (e.g. --nirvana-ip and NIRVANA_IP).\n // If you want a short flag for the field, you can only set a one-char string.\n // `desc` describes the field.\n Add(pointer interface{}, key string, shortFlag string, desc string) NirvanaCommand\n // Execute runs nirvana server.\n Execute(descriptors ...definition.Descriptor) error\n // ExecuteWithConfig runs nirvana server from a custom config.\n ExecuteWithConfig(cfg *nirvana.Config) error\n // Command returns a command for command.\n Command(cfg *nirvana.Config) *cobra.Command\n // SetHook sets nirvana command hook.\n SetHook(hook NirvanaCommandHook)\n // Hook returns nirvana command hook.\n Hook() NirvanaCommandHook\n}\n\nNirvanaCommand 扩展了 nirvana 包的插件能力:\n// CustomOption must be a pointer to struct.\n//\n// Here is an example:\n// type Option struct {\n// FirstName string `desc:\"Desc for First Name\"`\n// Age uint16 `desc:\"Desc for Age\"`\n// }\n// The struct has two fields (with prefix example):\n// Field Flag ENV Key (In config file)\n// FirstName --example-first-name EXAMPLE_FIRST_NAME example.firstName\n// Age --example-age EXAMPLE_AGE example.age\n// When you execute command with `--help`, you can see the help doc of flags and\n// descriptions (From field tag `desc`).\n//\n// The priority is:\n// Flag > ENV > Key > The value you set in option\ntype CustomOption interface{}\n\n// Plugin is for plugins to collect configurations\ntype Plugin interface {\n // Name returns plugin name.\n Name() string\n // Configure configures nirvana config via current options.\n Configure(cfg *nirvana.Config) error\n}\nNirvana Command 要求每个插件提供一个 Option,并且实现 Plugin 接口。用户在 Comamnd 中传递 Option 来启用插件,并且将插件 Option 中的公开字段根据一定的规则(规则参考上面的注释)从 flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。\n由于 Nirvana Config 服务配置的特殊性,config 包提供了一个 Option 来表达这些配置:\n// Option contains basic configurations of nirvana.\ntype Option struct {\n // IP is the IP to listen.\n IP string `desc:\"Nirvana server listening IP\"`\n // Port is the port to listen.\n Port uint16 `desc:\"Nirvana server listening Port\"`\n // Key is private key for HTTPS.\n Key string `desc:\"TLS private key (PEM format) for HTTPS\"`\n // Cert is certificate for HTTPS.\n Cert string `desc:\"TLS certificate (PEM format) for HTTPS\"`\n}\n\n除了插件 Option 以外,config 包会从以下文件列表中读取配置文件:\n目录:\n ./\n ./config/\n {ExecutableFilePath}/\n {ExecutableFilePath}/config/\n /etc/nirvana/\n\n配置文件名:\n nirvana.yaml\n nirvana.toml\n nirvana.json\n如果读取到配置文件,那么除了使用 Option 接收配置以外,还可以通过一些帮助方法获取配置:\n// IsSet checks to see if the key has been set in any of the data locations.\n// IsSet is case-insensitive for a key\nfunc IsSet(key string) bool\n\n// Set sets the value for the key in the override regiser.\n// Set is case-insensitive for a key.\n// Will be used instead of values obtained via\n// flags, config file, ENV, default, or key/value store.\nfunc Set(key string, value interface{})\n\n// Get can retrieve any value given the key to use.\n// Get is case-insensitive for a key.\n// Get has the behavior of returning the value associated with the first\n// place from where it is set. Viper will check in the following order:\n// override, flag, env, config file, key/value store, default\n//\n// Get returns an interface. For a specific value use one of the Get____ methods.\nfunc Get(key string) interface{}\n\n// GetBool returns the value associated with the key as a bool.\nfunc GetBool(key string) bool\n\n// GetDuration returns the value associated with the key as a time.Duration.\nfunc GetDuration(key string) time.Duration\n\n// GetFloat32 returns the value associated with the key as a float32.\nfunc GetFloat32(key string) float32\n\n// GetFloat64 returns the value associated with the key as a float64.\nfunc GetFloat64(key string) float64\n\n// GetInt returns the value associated with the key as a int.\nfunc GetInt(key string) int\n\n// GetInt8 returns the value associated with the key as a int.\nfunc GetInt8(key string) int8\n\n// GetInt16 returns the value associated with the key as a int.\nfunc GetInt16(key string) int16\n\n// GetInt32 returns the value associated with the key as a int32.\nfunc GetInt32(key string) int32\n\n// GetInt64 returns the value associated with the key as a int64.\nfunc GetInt64(key string) int64\n\n// GetString returns the value associated with the key as a string.\nfunc GetString(key string) string\n\n// GetStringSlice returns the value associated with the key as a []string.\nfunc GetStringSlice(key string) []string\n\n// GetUint returns the value associated with the key as a uint.\nfunc GetUint(key string) uint\n\n// GetUint8 returns the value associated with the key as a uint.\nfunc GetUint8(key string) uint8\n\n// GetUint16 returns the value associated with the key as a uint.\nfunc GetUint16(key string) uint16\n\n// GetUint32 returns the value associated with the key as a uint32.\nfunc GetUint32(key string) uint32\n\n// GetUint64 returns the value associated with the key as a uint64.\nfunc GetUint64(key string) uint64\n\n注:如果在 nirvana 包中对 Config 进行了扩展,涉及到字段的改变,也需要在这个包中修改 Option 和相应的功能。\n"},"topics/rest.html":{"url":"topics/rest.html","title":"rest","keywords":"","body":"rest 包\nrest 包提供了一个简单的 REST Client 用于访问 API 服务。\n在这个包中,主要包含三个概念:Config,Client 和 Request。Config 是 Client 的配置,用于创建 Client。而 Request 则由 Client 创建,用来表示每一个 REST 请求。\n// RequestExecutor implements a http client.\ntype RequestExecutor interface {\n Do(req *http.Request) (*http.Response, error)\n}\n\n// Config is rest client config.\ntype Config struct {\n // Scheme is http scheme. It can be \"http\" or \"https\".\n Scheme string\n // Host must be a host string, a host:port or a URL to a server.\n Host string\n // Executor is used to execute http requests.\n // If it is empty, http.DefaultClient is used.\n Executor RequestExecutor\n}\n\n// Client implements builder pattern for http client.\ntype Client struct {\n ...\n}\n\n// NewClient creates a client.\nfunc NewClient(cfg *Config) (*Client, error)\n\n// Request creates an request with specific method and url path.\n// The code is only for checking if status code of response is right.\nfunc (c *Client) Request(method string, code int, url string) *Request\n\n// Request describes a http request.\ntype Request struct {\n ...\n}\n\n// Path sets path parameter.\nfunc (r *Request) Path(name string, value interface{}) *Request\n\n// Query sets query parameter.\nfunc (r *Request) Query(name string, values ...interface{}) *Request\n\n// Header sets header parameter.\nfunc (r *Request) Header(name string, values ...interface{}) *Request\n\n// Form sets form parameter.\nfunc (r *Request) Form(name string, values ...interface{}) *Request\n\n// File sets file parameter.\nfunc (r *Request) File(name string, file interface{}) *Request\n\n// Body sets body parameter.\nfunc (r *Request) Body(contentType string, value interface{}) *Request\n\n// Meta sets header result.\nfunc (r *Request) Meta(value *map[string]string) *Request\n\n// Data sets body result. value must be a pointer.\nfunc (r *Request) Data(value interface{}) *Request\n\n// Do executes the request.\nfunc (r *Request) Do(ctx context.Context) error\n\nRequest 保存了一个请求的数据,用 Path,Query,Header,Form,File,Body 来设置请求的相关值,Meta 和 Data 来设置用于接收响应的值(都是指针)。然后 Do 用于真正发起请求,并完成 Meta 和 Data 的填充。\nRequest 的方法与 API Definition 的除了 Prefab 和 Error 之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于 Prefab 是由服务端生成而不由客户端提交,Error 由 Do 方法返回,因此这两种类型没有对应的方法。\n注:这个 Client 会被由命令 nirvana client 生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。 \n"},"topics/utils.html":{"url":"topics/utils.html","title":"utils","keywords":"","body":"utils 系列包\nutils 系列包包含:\n\napi 包,用于读取项目源码,并生成与 API 有关的所有数据结构,产出的结构可用于生成文档和客户端。\nbuilder 包,利用 api 包读取源码并生成 API 数据。\ngenerators/golang 包,利用 api 包提供的数据结构生成 golang 客户端。\ngenerators/swagger 包,利用 api 包提供的数据结构生成 API 文档。\ngenerators/utils 包,提供公共工具给其他生成器使用。\nprinter 包,提供了一个在 Terminal 中打印表格的功能。\nproject 包,提供了基础工具用于读取项目配置文件,通常是 nirvana.yaml。\n\n除了 printer 包以外,其他包都是用于生成文档和客户端用的。\n在 api 包中,提供了如下功能:\n\n对应 golang type 的 Type为了能让 golang type 能转换为可读的数据结构,构建了 Type 相关类型:\n// TypeName is unique name for go types.\ntype TypeName string\n\n// TypeNameInvalid indicates an invalid type name.\nconst TypeNameInvalid = \"\"\n\n// StructField describes a field of a struct.\ntype StructField struct {\n // Name is the field name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package path that qualifies a lower case (unexported)\n // field name. It is empty for upper case (exported) field names.\n PkgPath string\n // Type is field type name.\n Type TypeName\n // Tag is field tag.\n Tag reflect.StructTag\n // Offset within struct, in bytes.\n Offset uintptr\n // Index sequence for Type.FieldByIndex.\n Index []int\n // Anonymous shows whether the field is an embedded field.\n Anonymous bool\n}\n\n// FuncField describes a field of function.\ntype FuncField struct {\n // Name is the field name.\n Name string\n // Type is field type name.\n Type TypeName\n}\n\n// Type describes an go type.\ntype Type struct {\n // Name is short type name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package for this type.\n PkgPath string\n // Kind is type kind.\n Kind reflect.Kind\n // Key is map key type. Only used in map.\n Key TypeName\n // Elem is the element type of map, slice, array, pointer.\n Elem TypeName\n // Fields contains all struct fields of a struct.\n Fields []StructField\n // In presents fields of function input parameters.\n In []FuncField\n // Out presents fields of function output results.\n Out []FuncField\n // Conflict identifies the index of current type in a list of\n // types which have same type names. In most cases, this field is 0.\n Conflict int\n}\n\n\n对应 Nirvana API 的 Definition此处的 Definition 大部分字段与 definition 包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source definition.Source\n // Name is the name to get value from a request.\n Name string\n // Description describes the parameter.\n Description string\n // Type is parameter object type.\n Type TypeName\n // Default is encoded default value.\n Default []byte\n}\n\n// Result describes a function result.\ntype Result struct {\n // Destination is the target for the result.\n Destination definition.Destination\n // Description describes the result.\n Description string\n // Type is result object type.\n Type TypeName\n}\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Type is result object type.\n Type TypeName\n // Instance is encoded instance data.\n Instance []byte\n}\n\n// Definition is complete version of def.Definition.\ntype Definition struct {\n // Method is definition method.\n Method definition.Method\n // HTTPMethod is http method.\n HTTPMethod string\n // HTTPCode is http success code.\n HTTPCode int\n // Summary is a brief of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function TypeName\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n\n用于表示代码注释的 Comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是 +nirvana:api=option:\"value\"。\nconst (\n // CommentsOptionDescriptors is the option name of descriptors.\n CommentsOptionDescriptors = \"descriptors\"\n // CommentsOptionModifiers is the option name of modifiers.\n CommentsOptionModifiers = \"modifiers\"\n // CommentsOptionAlias is the option name of alias.\n CommentsOptionAlias = \"alias\"\n // CommentsOptionOrigin is the option name of original name.\n CommentsOptionOrigin = \"origin\"\n)\n\n// Comments is parsed from go comments.\ntype Comments struct {\n lines []string\n options map[string][]string\n}\n\nvar optionsRegexp = regexp.MustCompile(`^[ \\t]*\\+nirvana:api[ \\t]*=(.*)$`)\nvar options = []string{CommentsOptionDescriptors, CommentsOptionModifiers, CommentsOptionAlias}\n\n// ParseComments parses comments and extracts nirvana options.\nfunc ParseComments(comments string) *Comments\n\n\n用于分析源码的 AnalyzerAnalyzer 可以读取源码,获取结构对象和注释信息。\n// Analyzer analyzes go packages.\ntype Analyzer struct {\n ...\n}\n\n// NewAnalyzer creates a code ananlyzer.\nfunc NewAnalyzer(root string) *Analyzer\n\n// Import imports a package and all packages it depends on.\nfunc (a *Analyzer) Import(path string) (*types.Package, error)\n\n// PackageComments returns comments above package keyword.\n// Import package before calling this method.\nfunc (a *Analyzer) PackageComments(path string) []*ast.CommentGroup\n\n// Packages returns packages under specified directory (including itself).\n// Import package before calling this method.\nfunc (a *Analyzer) Packages(parent string, vendor bool) []string\n\n// FindPackages returns packages which contain target.\n// Import package before calling this method.\nfunc (a *Analyzer) FindPackages(target string) []string\n\n// Comments returns immediate comments above pos.\n// Import package before calling this method.\nfunc (a *Analyzer) Comments(pos token.Pos) *ast.CommentGroup\n\n// ObjectOf returns declaration object of target.\nfunc (a *Analyzer) ObjectOf(pkg, name string) (types.Object, error)\n\n\n集合上述所有功能的 ContainerContainer 读取源码并进行分析,产出 API 相关的所有定义和类型信息。API 定义和类型信息可以用来生成 API 文档和客户端。\n// Definitions describes all APIs and its related object types.\ntype Definitions struct {\n // Definitions holds mappings between path and API descriptions.\n Definitions map[string][]Definition\n // Types contains all types used by definitions.\n Types map[TypeName]*Type\n}\n\n// Container contains informations to generate APIs.\ntype Container struct {\n ...\n}\n\n// NewContainer creates API container.\nfunc NewContainer(root string) *Container\n\n// AddModifier add definition modifiers to container.\nfunc (ac *Container) AddModifier(modifiers ...service.DefinitionModifier)\n\n// AddDescriptor add descriptors to container.\nfunc (ac *Container) AddDescriptor(descriptors ...definition.Descriptor)\n\n// Generate generates API definitions.\nfunc (ac *Container) Generate() (*Definitions, error)\n\n\n\nbuilder 包相对 api 包来说就简单很多了,这个包里包含一个 API Builder:\n// APIBuilder builds api definitions by specified package.\ntype APIBuilder struct {\n ...\n}\n\n// NewAPIBuilder creates an api builder.\nfunc NewAPIBuilder(root string, paths ...string) *APIBuilder\n\n// Build build api definitions.\nfunc (b *APIBuilder) Build() (*api.Definitions, error)\n\nAPI Builder 首先会利用 Analyzer 去读取指定路径的源码,然后从中找到标记了 modifiers 和 descriptors 选项的注释。两个选项的值对应两个函数,分别返回 Modifier 和 Descriptor。然后动态生成一个 main.go 文件 import 这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用 api 包的 Container 来生成 API 定义和类型信息。API Builder 执行 main.go 后通过 stdout 取得返回值,反序列化成 Definitions 结构,然后再返回给 API Builder 的调用者。这样就完成了对一个项目的 API 信息的提取。\ngolang 包和 swagger 包实际上都是利用了 API Builder 的返回结果,构建出相应的客户端和文档。golang 包会为每一个 API 生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了 rest 包 Client 接口。swagger 包则是利用了 github.com/go-openapi/spec 将 API 定义和类型转换成了 openapi 的定义。\n"},"topics/command.html":{"url":"topics/command.html","title":"cmd/nirvana","keywords":"","body":"nirvana 命令\nNirvana 命令对应的包在 cmd/nirvana 中,目前包括三个命令:\n\ninit,用于初始化标准项目目录结构和必要文件\napi,用于生成 API 文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)\nclient,用于生成 API 对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。\n\n每个命令都是一个目录,互相之间不干扰。每个目录都有一个 init.go 的文件用于把当前的命令加入到 Nirvana 根命令中,比如:\npackage project\n\nimport \"github.com/spf13/cobra\"\n\n// Register registers all commands.\nfunc Register(root *cobra.Command) {\n root.AddCommand(newInitCommand())\n}\n\n然后在 main.go 中 import 这个包并进行命令注册:\nimport (\n \"github.com/caicloud/nirvana/cmd/nirvana/api\"\n \"github.com/caicloud/nirvana/cmd/nirvana/client\"\n \"github.com/caicloud/nirvana/cmd/nirvana/project\"\n \"github.com/caicloud/nirvana/log\"\n \"github.com/spf13/cobra\"\n)\n\nvar root = &cobra.Command{\n Use: \"nirvana\",\n Short: \"Nirvana toolchains\",\n}\n\nfunc main() {\n project.Register(root)\n api.Register(root)\n client.Register(root)\n if err := root.Execute(); err != nil {\n log.Fatalln(err)\n }\n}\n\n接下来以 init 命令为例,说明单个命令的基本结构:\nfunc newInitCommand() *cobra.Command {\n options := &initOptions{}\n cmd := &cobra.Command{\n Use: \"init /path/to/project\",\n Short: \"Create a basic project structure\",\n Long: options.Manuals(),\n Run: func(cmd *cobra.Command, args []string) {\n if err := options.Validate(cmd, args); err != nil {\n log.Fatalln(err)\n }\n if err := options.Run(cmd, args); err != nil {\n log.Fatalln(err)\n }\n },\n }\n options.Install(cmd.PersistentFlags())\n return cmd\n}\n\ntype initOptions struct {\n Boilerplate string\n Version string\n Registries []string\n ImagePrefix string\n ImageSuffix string\n BuildImage string\n RuntimeImage string\n}\n\nfunc (o *initOptions) Install(flags *pflag.FlagSet) {\n flags.StringVar(&o.Boilerplate, \"boilerplate\", \"\", \"Path to boilerplate\")\n flags.StringVar(&o.Version, \"version\", \"v0.1.0\", \"First version of the project\")\n flags.StringSliceVar(&o.Registries, \"registries\", []string{}, \"Docker image registries\")\n flags.StringVar(&o.ImagePrefix, \"image-prefix\", \"\", \"Docker image prefix\")\n flags.StringVar(&o.ImageSuffix, \"image-suffix\", \"\", \"Docker image suffix\")\n flags.StringVar(&o.BuildImage, \"build-image\", \"golang:latest\", \"Golang image for building the project\")\n flags.StringVar(&o.RuntimeImage, \"runtime-image\", \"debian:jessie\", \"Docker base image for running the project\")\n}\n\nfunc (o *initOptions) Validate(cmd *cobra.Command, args []string) error\n\nfunc (o *initOptions) Run(cmd *cobra.Command, args []string) error\n\n基本结构如下:\n\n一个创建命令的私有函数 newInitCommand\n一个表示当前命令的所有参数的 initOptions\nOptions 实现的 Install 方法用于安装 flag 到命令中\nOptions 实现的 Validate 方法用于验证参数是否正确\nOptions 实现的 Run 方法真正执行命令对应的逻辑\n\n\n\n如果需要新增命令扩展 Nirvana 的功能,需要按照上述结构进行开发。\n"}}} \ No newline at end of file +{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["api","golang","nirvana","也就是说,业务可以完全不依赖框架。","在设计上与现存的一些","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","是一个着重于提高开发效率和业务解耦的","框架。","框架不同,它的核心目标是让业务与框架隔离。","概览","的各个组件也是依据这个基本法设计的。在"],"guides/project.html":["\"\"","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/someapi\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/myproject","$path",".","./bin/myproject","./build/myproject/dockerfil","./myproject","/apis/v1","1.11)中,若项目处于","8080:8080","8080。","=","api","api.go","api。api","bin","build","cd","cmd","contacts:","contain","convert","curl","debian:jessi","definit","dep","description:","descriptor","descriptors.go","dockefile),还有一个","docker","dockerfil","email:","ensur","export","filter","filters.go","first","framework","github.com/caicloud/nirvana/cmd/nirvana","github.com/golang/dep/cmd/dep","go","go111module=on","golang/dep","golang:latest","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","hosts:","http","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages:","init","ip","localhost:8080","logo","main.go","maintain","make","makefil","makefile,只需要使用简单的","manag","messag","message.go","middlewar","middlewares.go","mod","modifi","modifiers.go","modul","myproject","myproject:v0.1.0","name:","nirvana","nirvana.yaml","nobodi","nobody@nobody.io","p","packag","pkg","prefix:","prefix,那么","project","project:","readme.md","regexp","regexp:","replac","replacement:","request","rules:","run","schemes:","server","u","us","v","v1","vendor","version","version.go","versions:","│","└──","├──","。","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","中也提供了直接打包成镜像的命令:","中间件","中):","为被替换为","也提供对","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","会生成一个完整的","使用","修改器","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","功能:","参数:","启动时会打印出","命令启动容器,然后进行访问:","命令就可以完成编译工作:","和","在","在当前","在服务启动之后,可以通过浏览器或者命令行访问","在需要发布的时候,通常需要打包成镜像的形式,在","在项目的","如果设置了","字段无效","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","定义","定义相关的代码都在这个目录中","定义,可以修改或删除","对应","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就能够看到","或域名,可以有多个","所有与","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","描述符","文档生成和客户端生成会依赖这个配置文件进行","服务使用的协议,只能填写","正则表达式,用于匹配路径","此时在","每个","比如设置","然后就可以直接使用命令创建项目(请确保","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","用于文档和客户端生成","的","的命令行和其他依赖工具:","的支持。","的运行,只用于描述项目的信息以及区分不同版本的","的返回结果。","的需要的包定义文件","目录下,则还需要运行一下命令开启","目录中就能看到编译后的二进制文件,直接运行:","直接编译运行","编译并打包成","编译运行","范例,因此可以直接运行查看效果。","访问","语言版本(version","语言版本升级到最新版本","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径替换,因此需要正确设置版本规则。","过滤器","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","进行包管理","那么","配置文件,用于描述项目的基本信息和结构。","镜像","项目","项目。项目结构如下:","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","首先将",",然后在创建项目时添加"],"guides/api.html":["\"/messages\",","\"/messages/{message}\",","\"count\",","\"exampl","\"get","\"list","\"messag","\"number","\"queri","\"thi","&message{","(*message,","([]message,","...","//","/apis/v1/resourc","/apis/v1/resources/{resource}","0;","10,","200","201","202","204",":=","=","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.parameter{","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`source:\"header,cont","`source:\"query,start,default=100\"`","anotherautostruct","api","api。","api,用于获取一条消息:","application/x","array\",","asynccr","asyncdelet","asyncpatch","asyncupd","auto","bodi","body,但是","content","content\",","content\"}","content:","contenttyp","context.context,","count","count)","creat","data","db","def.dataerrorresults(\"a","def.definition{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.query,","default:","default={value}","definit","definitions:","delet","describ","description:","descriptor","descriptor。","destin","entry.","error","error)","exampl","example\",","example\",\"content\":\"exampl","file","form","func","function:","getmessag","getmessage(ctx","get。","get,两者没有区别。","golang","header","http","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","id","id\"),","id\",","id,","id.","id/nam","id:","init","init()","int","int)","json","key","list","listmessag","listmessages(ctx","make([]message,","map[string]string,会写入","messag","message\"),","message\",","message.getmessage,","message.listmessages,","messages\"),","messages\",","messages.","meta","method","method:","multipart/form","name:","nil","nirvana","number","parameters:","patch","path","path:","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","post","prefab","put","queri","register([]def.descriptor{{","request","respons","rest","results:","return","server","sourc","source:","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","specifi","start","string","struct","summari","summary:","tag","titl","title:","type","type\"`","updat","url","urlencod","var","www","{","{\"id\":100,\"title\":\"thi","}","},","}...)","与业务函数的参数名称无关。","业务函数","业务函数返回结果如何放到请求的响应中。","中定义的动作以及对应的","中携带","中,我们建议所有的","中,所有的","之后,编译运行。然后访问","从","从请求的那一部分取得数据,然后传递给业务函数。","但是为了使","修改一个资源的部分内容","内部,比如一个","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","列表的","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","删除一个资源","参数值来源于","参数值来源于当前","参数名称,作为","参数描述","参数来源","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","名称","名称为","和","因为只获取一条消息,此处为","在","在一个","在使用","如果有多个","如果需要给字段设置默认值,则需要使用","定义。","定义了","定义了一个返回","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义,再对应业务函数:","定义:","对于","对于没有","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","成功状态码","或","所有的","接下来我们给项目增加一个","描述","数组包含了这个路径下的所有定义。","方法","方法。","方法。比如某个","方法包。","方法就应该是","方法都是语义层面的,为的是提高","无","是一个短语,用于描述这个","是从","是返回一个资源列表的,那么","更新一个资源(幂等)","有","根据上面的","根据资源唯一","概念","添加","用于描述一个业务函数的参数的来源和默认值。","的","的字段。","的字段。忽略所有没有","的形式。","的版本号。下表中展示了","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的结构体类型,会递归遍历以寻找带有","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型的","类型):","结构体,可以组合成一个:","给项目添加一个","而不是","范例如下:","获取一条消息的","获取资源","获取资源列表","详细描述这个","请求中使用的都是","路径","返回值可以是任意结构,自动转换并写入到","返回值目标","返回的是资源数组,所以使用","这个","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个返回值类型必须是","这是一个工具方法,用于快速生成一个参数结构。","这里添加的业务函数都是以","进行描述的。首先看一个","都是通过","都遵守","里取值。","里获取的。","链接","错误类型,必须是","风格,并且在","默认值"],"guides/doc.html":["$","/home/go/src/myproject","0702","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","8080","api","api.go:179","api.go:87","api.go:95","browser","default","directori","doc","http","http://127.0.0.1:8081","info","ip","listen","nirvana","open","packag","pkg/api","pleas","project","root","serv","serve=\":8081\"","specified,","view","|","会读取","公开给用户使用。于是我们需要给","即可查看文档。","和端口。","在完成了","并使用","提供了一个命令用于从项目中生成文档:","文档","文档截图如下:","服务用于访问这个文档。打开浏览器,访问","生成","的开发工作后,我们需要将","的用户提供一个文档,方便用户阅读。nirvana","端口提供服务。为了防止端口冲突,可以使用","设置监听的","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","这就表示文档生成成功,并且提供了一个","默认情况下,nirvana"],"guides/client.html":["!=","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"context\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","\"myproject/client/v1\"","$","&client{","&client{client},","&client{}","(","(*client,","(c","(interface,","(messag","(message1",")","*client","*client)","*message,","*rest.client","*rest.config)","*v1.client","./client","./client.go","./v1/client.go","./v1/types.go","//","/home/go/src/myproject","0702","10)","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","200,",":=","=","[]message,","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","api","c","c,","c.rest.request(\"get\",","c.v1","c.v1,","cli","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","clients.","contain","content","context.context,","count","count).","creat","data(&messages).","data(message1).","default","describ","directori","do(ctx)","entry.","err","error","error)","func","gener","getmessag","getmessage(ctx","golang","host:","id","id.","import","info","int","int)","interfac","io.read","io.readclos","listmessag","listmessages(ctx","log.fatal(err)","log.info(msgs)","main()","messag","message).","message1","messages.","msgs,","mustnewcli","mustnewclient(cfg","myproject/cli","new","new(message)","newclient","newclient(cfg","newclient(cfg)","nil","nil,","nirvana","nirvana.yaml","occurs.","output","packag","panic","panic(err)","path(\"message\",","pkg/api","project","query(\"count\",","rest","rest.newclient(cfg)","return","root","scheme:","specified,","string","struct","titl","type","types.go","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","var","version","{","|","}","})","└──","├──","中定义。api","使用客户端","依赖的结构体都会被提取出来并生成到","函数即可:","和","多客户端整合。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","指定其他输出目录(目前仅支持生成","支持良好,因此在","文件中,方便客户端使用。","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","生成代码","生成代码:","生成代码:","生成客户端","生成的客户端代码如下:","生成的客户端是版本化的,版本在","的参数和返回值中,尽量避免使用其他接口。","目前客户端生成对接口的支持还不完善,仅仅对","目录下生成","该命令默认会在","调用,可以生成客户端以供使用:","输出日志如下(项目路径和日志时间会有所不同):","限制"],"concepts/cp.html":["!=","&&","//","204",":=","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","application/json","application/octet","application/x","application/xml","conet","consum","consume(r","consumers:","consumer:","content","contenttyp","contenttype()","data","err","error","file","form","github.com/caicloud/nirvana/servic","handl","http","interfac","interface{})","io.read","io.reader,","io.writer,","json.marsh","json.unmarsh","log.fatal(err)","marshal","mime","multipart/form","newsimpleserializer(contenttype)","nil","nirvana","object","object.","pars","produc","produce(w","producers,并且他们的行为和","producers:","producer。","producer:","r","reader","return","serial","servic","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","specif","stream","string","text/plain","type","type.","unmarsh","urlencod","v","v.","w.","write","writer.","www","xml.marshal","xml.unmarsh","{","}","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","与","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","于","则负责将业务函数的返回结果写入到响应体中。","包提供了相应的工具用于注册用户自己的","包路径:","去读取数据并进行类型转换。","只能生成","可能不能满足实际使用需求。因此","和","在","在业务的实际场景中,默认提供的","在接收到","在需要生成","如果接收类型是","如果类型符合","实现了这个接口后,通过","将数据写入到响应。","将类型转换为字节数据写入到响应体中。","并成为","快速生成","或","接口。其中","接口或者是","描述","提供了","注册","添加","用于将请求体中的数据转换为业务函数需要的类型,而","的","的工具","的注册方法即可注册","空的","类型","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","自动处理数据转换,nirvana","说明了请求和响应中的数据类型。为了根据","请求中,content","进行解析。","通常对应于","通常情况下,我们需要快速添加一些","需要实现接口:","默认提供的"],"concepts/operator.html":["!=","\"converter\"}","\"count\",","\"list","\"number","\"queri","\"validator\"}","([]message,","(anytype,","(c","(interface{},","(uint,","*converterforanobject)","*validatorforanobject)","//","0;","10,","1,并且把",":=","=","[]def.operator{","[]def.parameter{","[]definition.operator{newcustom(f,\"custom","anoth","anytyp","anytype)","api","array\",","bool(tag","built","byte(tag","call","concret","context.context,","convert","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","count","count)","creat","custom","data","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","definit","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","descript","description\")}","description:","doc","done","err","error","error)","error)。其中参数的","error.","error。其中","example:","exp:","f","f(context.context,","f.","field","file","for(f","func","func(ctx","func.","function:","gen.","gener","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","go","go.","in()","indic","int","int(tag","int)","int16(tag","int32(tag","int64(tag","int8(tag","interfac","interface{})","interface{},","it'","kind","kind()","list","listmessag","listmessages(ctx","make([]message,","messag","message.listmessages,","messages\"),","messages\",","messages.","method:","name:","newcustom","newcustom(f","nil","nil,","nirvana","number","object","object,","object.","objv2,","one.","oper","operate(ctx","operator.","operators:","operator,那么","operator:","operator:valid","out","out()","paramet","parameters:","playground/validator,提供了用于生成","reader.","recommended.","reflect.typ","replac","result","results:","results。其中","return","second","signature:","source:","specifi","stream","string","string(tag","string)","string,","struct","struct(inst","struct{}","summary:","tag。","type","type.","uint","uint(tag","uint(value),","uint)","uint16(tag","uint32(tag","uint64(tag","uint8(tag","unless","us","user","valid","validate(object.(*object));","validation,","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","valu","var","way","{","{return","}","}),","},","业务函数","中使用","中添加","中,都有一组","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","会从第一个","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","包提供了工具方法用于将转换函数包装成","包的实现基于","包路径:","包还提供了方法用于创建自定义验证器:","可以不同。","和","和业务函数的参数一一对应,而","和返回值的","在","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在每个","在没有","对于结构体类型,在需要的字段上添加名为","并且会检查最后一个","接口,可用于针对单个参数或返回值进行验证和修改:","提供了","提供了两种类型的","方法获取类型,","是具体要验证的类型,不能使用接口。","是链式调用的,也就是说上一个","有时候默认的验证器不能覆盖复杂的验证需求,因此","注意:oper","的","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的情况下,nirvana","的方法:","的最小值为","的示例:","的返回值会作为下一个","类型。","类型。业务函数的参数也响应的变成了","类型是否和业务函数的参数类型一致。","类型转换为了","自定义验证器","转换函数必须符合","这个例子中,验证器要求","这是一个在","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","验证器函数必须符合签名"],"concepts/filter.html":["*http.request)","/","//","/。","/,如果存在就重定向到没有","/,如果没有就加上","application/x","befor","bool","data,然后","fals","false,","file。","fillleadingslash","filter","filtered.","form","func(resp","github.com/caicloud/nirvana/servic","handl","highest","http.responsewriter,","itself.","lifecycle.","matching.","mean","multipart/form","nirvana","pars","parserequestform","path","prioriti","redirecttrailingslash","req","request","request,","request.","return","router","run","type","url","urlencod","want","www","则表示请求不应该被继续处理,立刻丢弃。","包路径:","和","在整个","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","尾部是不是存在","提供了","提供的一些","机制,可以在收到一个请求的时候,立刻进行处理。并根据","框架中处于最高优先级。filter","的路径上。","的返回值来确定是直接丢弃该请求还是继续处理。","过滤器","返回","这两种类型的请求体,并转换为","这个过滤器判断","这个过滤器只针对","首部有没有"],"concepts/prefab.html":["\"context\",","(interface{},","...","//","=","[]def.parameter{","context","context.context)","contextprefab","contextprefab。请参考","creat","data.","def.definition{","def.prefab,","error)","form","github.com/caicloud/nirvana/servic","http","instanc","instance.","interfac","intern","make","make(ctx","modifi","name","name()","name.","name:","nirvana","paramet","parameters:","prefab","prefab。","prefab,即","prefab,名称为","reflect.typ","registerprefab()","request","return","servic","service.contextprefab。这个","someapi","sourc","source:","source。其他的","string","type","type()","type.","unmarsh","var","{","}","},","中一类特殊的","中实现的唯一一个","从请求中获取数据。","但是一般情况下,我们不应该这样使用","使用方法如下:","包的","包路径:","即可。","只需要将业务函数对应位置的","可以通过","和","将框架传递给它的与请求绑定的","提供的","是","来自于服务端本身。","注册需要的","的数据来源都是来自于请求,而","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","设置为","返回回去。"],"concepts/modifier.html":["*/*。","*definition.definition)","api","consum","consumeallifconsumesisempti","consumenoneforhttpget","consumer,即允许请求体为空。","context","context.context。","context。在这种场景下,如果每个","definit","definition.error。","definitionmodifi","definition。在我们实际开发过程中,经常会要求","delet","firstcontextparamet","func(d","github.com/caicloud/nirvana/servic","http","init","lasterrorresult","modif","modifi","modifiers。","nirvana","pkg/apis/modifi","prefab。启用之后,所有业务函数的第一个参数必须是","produc","produceallifproducesisempti","producenoneforhttpdelet","producer,即允许响应体为空。","type","下查看启用的","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","中,每一个","为所有","为所有的","为空的","会显得非常冗余。因此","公共部分的构建,而每个","创建的项目中,可以在","加上","加上空的","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包路径:","和","在","在使用","如下:","完成","实际上要填写的部分就是只与自身业务相关的信息。modifi","提供了","提供的","机制,允许在","生效之前,对","的","的最后一个返回值加上","的第一个参数添加上名为","类型的","这个","这样就能通过","进行修改。","都有一个对应的","都需要去描述这个参数,那么","默认启用的"],"concepts/middleware.html":["\"/path\",","/","//","/path","/path/path2","/path/path2/oth","1","1.","2","2.","3","3.",">","[]def.middleware{somemiddleware},","actions.","call","carri","chain","chain)","chain.continue()","contain","context.","continu","continue(context.context)","def.descriptor{","describ","descriptor","error","execut","form","func(context.context,","github.com/caicloud/nirvana/definit","interfac","middlewar","middlewares.","middlewares:","next","nirvana","on,","pass","path","path:","subsequ","type","url","want","{","}","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","且成功匹配的情况下,中间件的执行按照","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中间件","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件添加在","中:","包路径:","如果以下路径都添加了中间件:","有关,因此如果多个","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","添加成功后,所有前缀匹配","的请求都会执行这个中间件。","的顺序。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","那么如果存在请求"],"concepts/context.html":["\"application/x","\"content","\"multipart/form","([]string,","(multipart.file,","(reader","(string,","*http.request","//","bodi","body()","body.","bool","bool)","called.","check","code.","contain","content.","contentlength","contentlength()","contenttyp","context","context.","contextprefab","context。http","data","data\".","describ","extend","false,","file","file(key","form","form(key","github.com/caicloud/nirvana/servic","header","header(key","headerwrit","headerwritable()","http","http.responsewrit","http.responsewriter.","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","int","interfac","io.readcloser,","key.","length","method","nirvana","ok","once.","path","path(key","queri","query(key","read","reader","recal","request","request()","request.","responsewrit","responsewriter()","responsewriter。可是使用","return","routepath()","servic","statu","statuscod","statuscode()","string","string)","string,","string.","type","type\"","urlencoded\"","valid","valu","valuecontain","valuecontainer()","whether","writeheader()","writeheader().","written","www","{","}","中包含","中间件不应该修改","中,context","会把对应的","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","包的","包路径:","和","在","在一个请求路由匹配成功后,nirvana","方法获得","框架会为每个请求构建这样的","用于传递请求的上下文。context","的","相关接口如下:"],"concepts/source.html":["(interface{},","//","8","[]consumer,","consum","container.","context.context,","current","data","defaultvalu","definition.sourc","error","error)","func","gener","generate(ctx","generator.","generator。这些","generator:","github.com/caicloud/nirvana/servic","interfac","interface{},","name","nirvana","object","paramet","parameter.","parametergener","parametergenerator)","reflect.type)","regist","registerparametergener","registerparametergenerator(gener","return","servic","sourc","source()","source:path,query,header,form,file,body,auto,prefab。","string,","target","type","us","valid","valid.","validate(nam","valu","valuecontainer,","vc","whether","{","}","不能满足实际的业务需求,可以通过","包提供的方法注册自定义的","包路径:","如果","对应一个","每种","种类型的","负责一种类型的参数的验证和类型转换工作。","默认提供了","默认提供的"],"concepts/destination.html":["(goon","(or","//","1.","2.","3","3.","[]producer,","api","bool,","case","code","code.","context","context.","context.context,","continue):","current","deal","definit","definition.destin","definition.typ","descid","destin","destination()","destinationhandl","destinationhandler)","destination:meta,data,error。","err","error","error)","error.","everyth","execute.","false,","finish","func","github.com/caicloud/nirvana/servic","go","goon,用来确定是否需要执行下一个","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler:","higher","int","int,","interfac","interface{})","look","mean","next","nil","nil.","nirvana","noth","nothing)","ok,","prior","prioriti","priority()","produc","reflect.type)","regist","registerdestinationhandl","registerdestinationhandler(handl","result","return","run.","servic","someth","statu","subsequ","success","take","target","three","true,","type","type.","us","valid","validate(target","valu","value.","whether","wrong,","wrong.","{","}","不能满足实际的业务需求,可以通过","先执行。并且执行之后会返回","包提供的方法注册自定义的","包路径:","如果","存在优先级,优先级高的","对应一个","每种","种类型的","负责一种类型的返回结果的数据转换工作。","默认提供了","默认提供的"],"concepts/error.html":["\"${name}","\"exampl","\"there","\"thi","${id}\")","&message{","(*message,","//","100","101\",\"data\":{\"id\":\"101\"}}","200","404","500","=",">","api","code","code()","code.","common","contain","content\",","content\"}","content:","context.context,","correct\")","correct\",","curl","data","err","error","error()","error)","error.","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。创建","error,但是第一种方法比第二种多出更多特性:","example\",","example\",\"content\":\"exampl","func","getmessag","getmessage(ctx","github.com/caicloud/nirvana/error","golang","handler","http","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/101,即可得到一个","id","id,","id.","id:","id,也就是","implement","inform","int","int)","interfac","interface,","interface{}","intern","messag","message()","messagenotexist","messagenotexist.error(id)","nil","nil,","nirvana","notfound","object","reason","reason。","reason,方便客户端判断错误类型。","return","server","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","specifi","statu","string","title:","type","us","var","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","}","},","中,我们也经常看到使用数字","中,错误需要实现","为了方便使用,nirvana","于是","介绍","使用","使用范例","包","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包路径:","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在实际的业务中,http","在常见的商业","字段中,可以在客户端使用","对于这种错误,都会以","我们建议","接口。即:","接口。如果实现了,就会以","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","提供了","提供了一个新的接口:","方法一","方法二","是否由这个错误工厂生成。","来唯一确定一个错误","来标志的错误。但是数字","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","的","的响应,响应体为:","的形式判断一个","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的方式有两种:","的格式满足:","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的返回值作为","的返回值作为数据返回。","第一种方法带有","第一种方法支持使用","编译运行后可以得到结果:","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","访问","这两种方法都可以创建","这样做有两个优势:","这种形式的","通过","通过具体错误的","里的值进行文本国际化。","错误包","项目名[:模块名]:错误名"],"concepts/method.html":["\"count\",","\"list","\"listmessages\"),","\"method","\"methodname\")","\"number","\"queri","&container{title,","&container{}","(*container)(nil)","([]message,","(ctx","(m","*contain","*container)","*message.contain","//","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0;","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","10,","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","9\",\"content\":\"method","9\"}]",":=","=","[]def.parameter{","[{\"id\":0,\"title\":\"method","api","array\",","contain","content","content\"))","content}","context.context,","count","count)","creat","def.dataerrorresults(\"a","def.definition{","def.list,","def.query,","default:","description:","error)","exampl","example\",","func","function:","get()","get(typin","github.com/caicloud/nirvana/definition/method","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","http://localhost:8080/apis/v1/messag","instance)","insterface{})","int)","interface{},","list","listmessag","listmessages(ctx","main.go","make([]message,","messag","messages\"),","messages\",","messages.","method","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","name:","newcontain","newcontainer(title,","nirvana","number","panic。","parameters:","put()","put(in","receiv","results:","return","source:","specifi","string","string)","struct","summary:","titl","type","var","{","}","},","业务方法:","中创建实例并通过","中,业务函数是","为了保证业务与","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","其中","具体实例类型","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","包介绍","包是一个全局实例容器,每种类型对应一个实例。","包路径:","包,用于分离实例的创建和","即可得到返回结果:","和","在","定义。","定义的无关性,nirvana","定义:","实例","实例。","接口实例类型","提供了","方法包","是一样的。","注意,get()","然后编译运行,访问","生成匿名函数:","用于生成一个匿名函数,生成的函数的签名没有方法的","的对应关系。","类型","获取接口实例:","设置接口实例:","请求的","这就是","部分,例如:","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。"],"concepts/configurer.html":["(c","*config","*config)","...","...configurer)","...definition.descriptor)","...service.definitionmodifier)","...service.filter)","//","api","config","config.","configur","configure(configur","configurers.","describ","descriptor(descriptor","error","filter(filt","filter。","func","func(c","github.com/caicloud/nirvana","ip","ip(ip","keyfil","locked.","log.logger)","logger(logg","logger,用于输出错误。","modifier(modifi","modifier。","nirvana","occur","panic","port(port","server","server.","string)","struct","tl","tls(certfile,","type","uint16)","us","{","}","包路径:","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在运行过程中使用的","地址。","实现了","描述。所有的","提供的","机制,用于单独配置每一项信息:","添加","添加到","的","设置","设置监听的","设置监听的端口。","证书和密钥。","都通过这个","配置器机制","里。"],"concepts/plugin.html":["\"pluginname\"","(i","*config)","*nirvana.config)","*plugininstaller)","//","=","`c.config(externalconfigname)`/`c.set(externalconfigname,","befor","builder.","c.set(externalconfigname,","careful,","certain","cfg","cfg)`","config","config.","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","conflict","const","current","delet","disabl","disable()","ensur","error","extern","externalconfignam","fielda.","fieldb.","fieldtype)","framework","func","func(c","get/sav","global","init()","instal","install(build","install/initi","interfac","name","name()","name.","need.","nil","nil)","nirvana","nirvana.","nirvana.configur","nirvana.registerconfiginstaller(&plugininstaller{})","packag","pleas","plugin","plugin.","plugininstal","plugins.","regist","registerconfiginstaller(ci","return","server","server.","servic","service.builder,","set","starting.","string","struct{}","stuff","terminating.","type","uninstal","uninstall(build","uniqu","us","won't","{","{...)","{...}","}","一个基本的插件框架如下:","一般情况下,插件应该通过插件","中添加插件配置。","包提供的方法进行注册:","在","插件实现了这个接口之后,即可通过","插件接口:","插件机制","的","进行注册。然后提供相应的","配置基本信息以外,还提供了插件机制。","除了使用"],"concepts/clients.html":["!=","\"clientset/svca\"","\"clientset/svcb\"","\"github.com/caicloud/nirvana/rest\"","\"http\",","\"localhost:8080\",","$","$gopath/src/","$gopath/src/clientset","$gopath/src/svca","$gopath/src/svcb","&clientset{}","(","(c","(interface,",")","*clientset)","*rest.config)","../clientset/svca","../clientset/svcb","//","10)",":=","=","a.","b.","c","c,","c.svca","c.svca,","c.svcb","c.svcb,","cd","cli","cli.svca().v1().listmessages(context.background(),","client","client.go","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","contain","creat","describ","err","error","error)","func","host:","import","init","interfac","log.fatal(err)","log.info(msgs)","main()","mkdir","msgs,","multipl","mustnewclientset","mustnewclientset(cfg","new","newclientset","newclientset(cfg","newclientset(cfg)","nil","nil,","nirvana","occurs.","output","packag","panic","panic(err)","rest","return","scheme:","set","set.","struct","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","touch","type","types.go","v1","v2","var","{","}","})","│","└──","├──","两个服务项目。","中创建","为了演示这个过程,我们逐步构建这个项目。","代码如下:","使用","创建","创建项目","即创建了","和","在","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","多客户端整合","整合客户端","此时","没有太大区别:","然后创建两个服务项目(仅用于演示):","生成","生成客户端","的使用方法和普通","的客户端:","的项目结构如下:","统一网关访问","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","项目,用于保存所有服务的客户端:","首先创建","默认情况下,我们会为每个服务生成如下结构的客户端:"],"plugins/logger.html":["//","`desc:\"debug","`desc:\"log","`desc:\"overrid","basic","bool","command","config","configur","contain","debug","enabled\"`","field","flag。","framework","github.com/caicloud/nirvana/plugins/logg","global","int32","level","level.","logger","logger\"`","logger.","logger。","logs\"`","mode.","modifi","nirvana","option","output","overrideglob","plugin","sens","server","struct","true,那么除了设置当前","type","{","}","为","以外,还会设置全局的","包的","包路径:","启用","就无效。如果","暴露","模式后,level","的","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","编写,只是为了通过","这个插件暴露三个选项:"],"plugins/reqlog.html":["/","bool)","configurer:","default()","disable()","doublelog(en","github.com/caicloud/nirvana/plugins/reqlog","id","key,默认为","log.logger)","logger","logger(l","nirvana.configur","request","requestid(en","requestidkey(key","sourceaddr(en","string)","x","上的中间件,用于打印所有路由匹配成功的请求的日志。","关闭插件","包路径:","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件并使用默认配置","插件","的","设置","设置请求","请求日志插件","请求日志插件会添加一个在"],"plugins/metrics.html":["/metric","api","configur","configurer:","disable()","github.com/caicloud/nirvana/plugins/metr","namespac","namespace(n","nirvana.configur","path","path(path","prometheu","prometheus,提供了一个","string)","修改。","关闭插件","包注册指标。采集端可以通过","包路径:","可以通过","启用插件后,可以直接向","插件","用于暴露服务端指标。","监控指标插件","监控指标插件基于","设置","路径","路径,默认值为","采集指标数据。"],"plugins/tracing.html":["/","//","addhook(hook","after(ctx","agenthostport","allow","befor","before(ctx","configurer:","context.context,","custom","customtracer(trac","defaulttracer(servicenam","disable()","exec","github.com/caicloud/nirvana/plugins/trac","hook","hook)","inform","interfac","nirvana.configur","opentrac","opentracing.span)","opentracing.tracer)","process","request","span","span.","string)","string,","trace","tracer","type","{","}","上添加一个中间件用于提取","使用自定义的","使用默认的","信息。","关闭插件","包路径:","接口实现了请求跟踪机制,会在","接口:","插件","设置请求","请求追踪插件","请求追踪插件基于"],"plugins/profiling.html":["/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","api,用于取得服务运行时信息。","configur","configurer:","descriptor:","disable()","github.com/caicloud/nirvana/plugins/profil","net/http/pprof","nirvana.configur","path","path(path","string)","一致的","修改。","关闭插件","前缀路径","包路径:","可以通过","性能分析插件","性能分析插件添加与","插件","设置路径前缀,默认值为","默认情况下,插件会添加四个"],"plugins/version.html":["/version","/version。","api","commit","configurer:","description(descript","disable()","github.com/caicloud/nirvana/plugins/profil","hash","hash(hash","name(nam","nirvana.configur","path(path","string)","version(vers","值","值。一般情况下可以设置为代码的","关闭插件","包路径:","插件","版本信息插件","版本信息插件提供一个","设置","设置服务","设置服务名称","设置服务版本号","设置服务的描述","路径默认为","路径,默认值为","返回服务的版本信息。api"],"plugins/healthcheck.html":["/healthz","/healthz。","api","checker","checker(check","configurer:","context.context)","disable()","error","func(ctx","github.com/caicloud/nirvana/plugins/healthcheck","healthcheck","healthchecker)","nil。如果服务异常,则返回相应的错误。","nirvana.configur","path(path","string)","type","健康检查插件","健康检查插件提供一个","关闭插件","包路径:","如果服务正常,则","应该返回","插件","插件提供了一个函数接口:","用于检查服务是否正常。","设置","路径,默认值为","返回服务当前是否健康。api","默认路径为"],"topics/start.html":["$","$gopath/src","1.10.x","1.9.x","account}/nirvana.git","api","cd","clone","cmd/nirvana","command","config","config.json","convert","definit","definition/method","dep","dep:https://github.com/golang/dep","error","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","fork","git","git@github.com:{your","github","github.com/caicloud/","githuh","go","golang","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","log","mkdir","nirvana","oper","p","plugin","pr","repo","server","servic","service/rout","test","util","validators,用于","vendor","vendor。","一般情况下,我们使用最新版本的","上","与","中。","中包含了两个组件功能实现了","中包含了许多实现了","中,不能在任何子目录下使用","之后,通过","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","以及插件化功能。","其中","准备工作","函数。请参考","到自己的账户下,然后下载源码到本地开发目录中:","功能,并提供了从","包之间的依赖关系:","包包含","包包含多个工具用于","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了框架","包帮助用户快速构建项目。","参数的类型转换和数据验证。","另外","只使用","和","在","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在完成修改并提交到自己的","大版本的兼容性。即使用","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","工作流程","帮助用户把实例方法转换为","开发工具介绍","开发的情况下,需要保持对","提交代码。","插件接口的插件。","方法包。","是","是基础包,分别负责日志基础接口和错误处理基础接口。","框架的","框架的设计核心思想是:隔离","框架设计概览","测试以外,还需要使用","生成,客户端代码生成,项目结构生成。","的主要命令,利用","的入口包。","的兼容性。","的形式向","的配置文件在根目录的","路由和处理的所有功能。","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行开发,但是需要保证两个","除了常规的"],"topics/log.html":["\"error\"","\"fatal\"","\"info\"","\"warn\"","(",")",".","...interface{})","//","1","1.","2","2.","3","3.","4","4.","5.","6.","=","[5,","api","api,并且允许用户接入其他日志系统。","append","argument","call","called.","can't","class","clone","clone(wrapp","const","correspond","current","custom","debug","document","error","error(...interface{})","error.","errorf","errorf(string,","errorln","errorln(...interface{})","exit","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","fmt.print;","fmt.printf;","fmt.println;","follow","four","frequent","glog","golang","handl","immediately.","implement","import","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","information.","int)","int32","interfac","level","level.","leveldebug","leveldebug)","levels.","log","log.","logger","logger.","logger,使用的是","logs,","logs.","mani","manner","math.maxint32","mean","method","missing.","more","neg","new","newlin","nil.","os.exit(1)","os.exit(1).","output","outsid","panic","posit","provid","recommend","recovered.","report","request","return","rules:","see","set","setdefaultlogger()","sever","severityerror","severityfat","severityinfo","severitywarn","silentlogg","site","situation.","stderr","stdlogger。可以通过","string","stripped.","strongli","type","us","usual","v","v(level)","valu","verbos","verboser,","verboser.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","whether","wrapper","wrapper.","write","{","}","之前,需要知道以下几件事情:","包","包提供了一组基础的日志","包有一个默认的","参考了","变更。","和一个使用了","在","在实现一个自定义的","对于不需要输出日志的场景,使用","方法。clone","方法用于在对","时候,使用","标准接口如下:","正确实现","的","的实例而不是","这套日志","进行包装的时候,获取正确层级的调用栈信息。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。"],"topics/errors.html":["\"${user}","(",")","...interface{})","//","11.2","11.3","11.4","11.5","2.3.3","2295,","2774,","3","3.1","3.2","4","4.2","4.4","4918,","5","5842,","6","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8.1","=","api","badgateway","badrequest","bool","build","build(reason","builder","builder,factori","check","code()","conflict","creat","current","deriv","derived(","error","error(format","error(v","error)","error。","error。其中","errros.","expectationfail","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fix","forbidden","format","format.","format,比如","found\")。","gatewaytimeout","gener","gone","http","httpversionnotsupport","immedi","insufficientstorag","int","interfac","interface{}","internalservererror","lengthrequir","lock","loopdetect","message()","methodnotallow","networkauthenticationrequir","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","nirvana","notaccept","notextend","notfound","notimpl","paymentrequir","preconditionfail","preconditionrequir","predefin","proxyauthrequir","reason","reason,","reason.","requestedrangenotsatisfi","requestentitytoolarg","requestheaderfieldstoolarg","requesttimeout","requesturitoolong","rfc","serviceunavail","string","string)","string,","teapot","toomanyrequest","type","unauthor","unavailableforlegalreason","unprocessableent","unsupportedmediatyp","upgraderequir","us","v","v.","var","variantalsonegoti","without","{","}","主要是以","之上,构建了","则用于判断一个错误是否是由当前的","则用于构建特定的","加上一些附加属性,用来表示返回的错误码等信息。","包","包中存在三个概念,分别是","包中):","包提供的","包的依赖,可以自行实现错误包,只要产出的错误符合","包类似于标准库的","包,但是提供了方法用于生成格式化的错误和错误判断。","可以构建带有","和","因此在","就足够了。但是为了让错误能够以","接口即可。","接口如下(这个接口并没有显式定义在","接口如下:","接口,用于创建具有一类特征的","方法用于直接创建出","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","状态码作为基础的:","生成。","用于传入参数输出一个真正的错误。","用于构建","的","的两个方法:","的形式向客户端返回,我们还需要给","的错误)。","目前","识别的错误,但是如果业务逻辑中如果不希望引入对","这个包方便了用户创建能够被","这样就能够非常方便的错误创建和错误判断了。","通常情况下,有","首先看"],"topics/definition.html":["!=","\"\"","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/some\",","\"accept\"","\"accept\".","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"content","\"converter\"}","\"create\"","\"data\"","\"delete\"","\"error\"","\"file\"","\"form\"","\"get\"","\"header\"","\"list\"","\"meta\"","\"multipart/form","\"patch\"","\"path\"","\"prefab\"","\"query\"","\"source\".","\"source,name\".","\"text/plain\"","\"update\"","\"validator\"}","(","(anytype,","(c","(interface{},",")","*converterforanobject)","*validatorforanobject)","//",":=","=","[]definit","[]descriptor","[]exampl","[]middlewar","[]oper","[]paramet","[]result","[]string","`source:\"header,cont","`source:\"query,start\"`","accept","accepttypeal","actions.","altern","anytyp","anytype)","api","asynccr","asyncdelet","asyncpatch","asyncupd","auto","back","behavior.","bind","bodi","body.","brief","built","call","carri","cases,","certain","chain","chain)","chain.continue()","child","children","clearer","client","client.","code","code.","combin","concret","const","consum","consume.","consumes.","contain","content","content.","contenttyp","context.","context.context,","continu","continue(context.context)","converter:","converterforanobject","convertobjectv1toobjectv2(object.(*objectv1))","creat","create)。","current","custom","data","data\"","data\".","data.","default","defin","definit","definition.","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definitions.","delet","describ","descript","descriptor","descriptor'","descriptors.","destin","differ","element","empty,","equal","err","error","error)","error.","errorproduc","etc.","ex.","exampl","example.","example:","execut","exist","f","f(context.context,","field","field.","file","first","form","format","from.","func","func(context.context,","function","function.","gener","generator.","go.","handl","handler","handler.","header","header.","http","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","identifi","in()","indic","inherit","instanc","int","interfac","interface{}","interface{})","it'","key,","kind","kind()","last","line","list","locat","make","mani","mean","meta","method","method.","middlewar","middlewares.","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","modifi","more","name","name,","next","nil","nil,","nirvana","object","object,","object.","objv2,","occur","on","on,","one.","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operators:","out","out()","overrid","paramet","parameter.","parameters.","parent","parent'","pass","patch","path","path.","place","prefab","previou","produc","produce.","produces.","provid","queri","reader.","receiv","recommended.","reflect.typ","replac","request","request.","response.","result","result.","results.","retrun","return","return.","second","set","signature:","sourc","specially.","start","statu","stream","stream\"","string","string,","string.","struct","struct{}","sub","subsequ","succeess","success","summari","tag","tag.","target","time,","treat","type","type\"","type\"`","type.","unless","updat","url","urlencoded\"","us","usag","valid","validate(object.(*object));","validator:","validatorforanobject","valu","value.","values.","want","ways.","write","www","{","{return","}","中提供了","中,提供了","其中","其他与","其他与具体","分别对应","则针对单个的业务参数和返回值,可以对值进行验证和修改。","包","包包含了","包除了包含对","参数和返回值定义","可被","同等级别的字段","和","在","在上面的定义中,存在两个额外功能:","如果希望对","定义,用于描述","定义:","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","方法,这个方法是一个抽象方法,用于描述一种行为(比如","的","的参数与返回值。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的定义以外,还提供了一些函数,帮助快速构建","结构体包含了一个具体的","结构体包含具有如下含义的字段:","继承的字段","路径","路径同等级别的字段","进行扩展,需要遵守上面这些规则。"],"topics/method.html":["(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(c","*container)","...","//","=","api","contain","container.","container:","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","definit","definition.funct","definition/method","func","function","get(inst","golang","ifac","instanc","instance)","instance.","interface,","interface{}","interface{})","interface{},","mappings.","method","method)","method.","methods.","more","need","newcontainer()","on","put","put(inst","putinterfac","putinterface(ifac","return","specifi","string)","struct","type","us","var","want","{","}","一般情况下,用户会使用这个全局的容器。","之前使用。","包","包中,可以看到","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包还提供了一个全局的","可以在","和","在","容器如下:","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","时,使用","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","真正的实例,即","获取某个实例的方法,之后再在服务启动逻辑里","过程。也就是可以在声明","这个主要是利用了","这个实例方法容器分离了方法的"],"topics/converter.html":["\"converter\"","(anytype,","//","=","`converter`.","anytyp","anytype)","built","const","convert","converter.","creat","data","definition.oper","definition.operatorfunc(operatorkind,","describ","error)","error.","f(context.context,","f)","for(f","func","func.","gener","go.","interfac","interface{})","kind","kind.","mean","opeartor","oper","operatorkind","operators/convert","operator。","operator:","packag","paramet","recommended.","return","second","signature:","string","string,","struct","type","us","{","}","包","包提供了一个","实现,帮助用户快速构建名为","的","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为"],"topics/validator.html":["\"custom\"","\"struct\"","\"validator\"","\"var\"","(",")","//","=","[]definition.operator{newcustom(f,\"custom","`validator`.","allow","anoth","anytype)","automat","base","basic","bool","bool(tag","bool.","built","byte","byte(tag","call","categori","category()","categorycustom","categorystruct","categoryvar","const","context.context","context.context,","contextu","creat","current","custom","definition.oper","describ","descript","description\")}","description()","differ","distinguish","doc","done","error","exp:","expos","f","f.","fields,","func","func(ctx","gen.","gener","golang","gopkg.in/go","implementation.","indic","information.","int","int(tag","int*,","int16","int16(tag","int32","int32(tag","int64","int64(tag","int8","int8(tag","interfac","interface{})","interface{},","kind","kind.","mean","nest","newcustom","newcustom(f","object","opeartor","oper","operator.","operatorkind","operators/valid","operator:","otherwis","packag","pass","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","return","specifi","string","string(tag","string)","string,","struct","struct(inst","struct.","structs,","tag","tag()","tag.","type","type.","types.","types:","uint","uint(tag","uint*,","uint16","uint16(tag","uint32","uint32(tag","uint64","uint64(tag","uint8","uint8(tag","unless","us","user","valid","validation,","validator.","way","{","}","包","包提供了一系列的方法帮助用户快速生成用于校验参数的","基础类型,结构体类型和自定义类型。目前验证方法基于","目前支持三种类型的验证,分别对应"],"topics/router.html":["(executor,","*","*regexp.regexp",".*:","/","//","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/{regexp:[a",">","[]index","ab","api","call","can't","carri","chain","children","contain","context","context.","continu","continue(context.context)","definit","describ","error","error)","execut","execute(context.context)","execute.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exp","expression.","find","fix","form","full","fullmatch:.*","fullmatchregexpnod","func(context.context,","gener","handler","index","indic","inform","inspect","inspect(context.context)","inspector","inspector:","instanc","int","interfac","it'","key","match","match.","middlewar","middlewares.","name","next","node.","node:","nodes:","on,","optim","pass","path","path.","path:","pathnod","po","posit","prefix","regexp","regexp:[a","regexpnod","regexpnode.","regular","rest","return","router","routingchain","routingchain)","routingchain.continue()","segment.","select","servic","service/rout","someth","string","stringnod","struct","submatches.","target","the/rest/path","type","valid","valu","value.","want","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","}","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","下面用一个例子来说明这几个节点:","中间件接口如下:","之前。","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","剩余路径类型节点","剩余路径类型节点:","包","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包进行","包进行路由构建和匹配。","在上面的路径节点中,每个节点都可以绑定一个","如果能返回一个","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","完全匹配。","定义,然后由","实际上是调用的","对于中间件而言,处理完当前的任务之后只需要调用","将","执行完成之后,请求也处理完成了。","来生成一个能够处理当前的路由上下文的","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","路径匹配完成后,会调用匹配链的最后一个节点的","这个节点匹配剩余所有路径。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","通过"],"topics/service.html":["\"application/x","\"content","\"multipart/form","(","([]string,","(goon","(interface{},","(multipart.file,","(or","(reader","(service,","(string,",")","*definition.definition)","*http.request","*http.request)","...definition.descriptor)","...filter)","//","1.","100","2.","200","3.","300","=","[]consumer,","[]filter","[]producer,","[]string","[]string)","add","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","api","befor","bodi","body()","body.","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","bool","bool)","bool,","build","build()","builder","builder.","builder:","called.","case","check","code","code()","code.","common","const","consum","consume(r","consumer,converter,prefab","contain","container.","content.","contentlength","contentlength()","contenttyp","contenttype()","context","context.","context.context)","context.context,","contexthttpcontext","continue):","convert","creat","current","custom","data","data\".","data.","deal","defaultvalu","definit","definition.","definition.destin","definition.sourc","definition.typ","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definition。请求过滤器则是在","descid","describ","descriptor","destination()","destinationhandl","destinationhandlerdestinationhandl","element","err","error","error)","error.","everyth","execute.","executed.","executor","exists,","extend","false,","file","file(key","filter","filtered.","filters()","filters.","finish","form","form(key","func(ctx","func(d","func(resp","function","gener","generate(ctx","generator.","go","golang","handl","handle(ctx","handle.","handler","handler.","handlers.","header","header(key","headerwrit","headerwritable()","higher","highest","highprior","http","http.handler","http.handler,用来处理请求。","http.responsewrit","http.responsewriter,","http.responsewriter.","httpcontext","ignor","implement","inform","instanc","instance.","int","int,","interfac","interface,","interface{}","interface{})","interface{},","intern","io.readcloser,","io.reader,","io.writer,","it'","it.","itself.","key.","length","lifecycle.","log.logg","log.logger)","logger","logger()","look","lowprior","make","make(ctx","map[string][]definition.definit","map[string][]definition.middlewar","marshal","match","matching.","mean","mediumprior","messag","message()","meta","method","middlewar","middlewares()","middlewares.","mime","modifi","modifier()","modifier.","name","name()","name.","next","nil","nil.","nirvana","noth","nothing)","object","object.","occurs,","ok","ok,","on","once.","panic.","parameter.","parametergener","parametergeneratorparametergener","path","path(key","prefab","prior","prioriti","priority()","produc","produce(w","producerconsum","queri","query(key","query,head","r","read","reader","recal","reflect.typ","reflect.type)","req","request","request()","request,","request.","requests.","respons","responsewrit","responsewriter()","responsewriterresponsewrit","result","return","routepath()","router","router.","run","run.","server.","servic","service.","service.servehttp()","set","setlogg","setlogger(logg","setmodifi","setmodifier(m","someth","sourc","source()","specif","specifi","statu","statuscod","statuscode()","string","string)","string,","string.","subsequ","success","take","target","three","true,","type","type\"","type()","type.","unmarsh","urlencoded\"","us","user","v","v.","valid","valid.","validate(nam","validate(target","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","vc","w.","want","whether","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","{","|","}","↑","↓","中。","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","修改器用于在生成路由之前修改","修改器,请求过滤器,api","其中","则是将业务函数的返回值转换并写入到响应的","包","包实现了","包的入口是","包里提供了一个","和","基础类型的转换器这些转换器一般是用于将请求里的","处理框架:","实现了","实际上是一个","对应","将返回值转换为字节写入响应中。在","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","描述符。构建完成的","提供了多个方法用于设置生成服务需要的日志,definit","是业务函数返回值处理器,通过调用","是对","是真正的参数生成器,通过调用","服务。因此","来提供","构建","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于生成业务函数的参数的","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的基础类型,供业务函数使用。//","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型的","转换为路由需要的数据结构,涉及到以下内容:","返回出去,供业务函数使用。//","还会将","针对请求的"],"topics/nirvana.html":["(builder","(c","*config","*config)","...","...configurer)","//","activ","alway","anoth","api","befor","bool","builder","builder()","builder.","called.","check","clean","cleaner","cleaner.","clients.","complet","config","config(nam","config.","configinstal","configur","configure(configur","configurers.","config:","connections.","contain","context.context)","creat","creation,","current","delet","describ","directli","don't","down","err","error","error)","error,","except","extern","form","func","func()","func(c","get","gracefulli","handl","hold","http","instal","install(build","interfac","interface{}","interface{})","interrupt","ip","ip()","ip.","it.","listen","lock","locked()","locked.","log.logg","logger","logger()","logger.","method","modifi","name","name()","name.","new","newserv","newserver(c","nil","nirvana","occur","occurs.","one.","panic","plugins.","port","port()","port.","request","requests.","resourc","return","router","same","serv","serve()","server","server.","servic","service.builder,","services.","set","set(nam","shut","shutdown","shutdown(ctx","shutdown,","special","start","starting.","string","string)","string,","struct","stuff","terminating.","type","uint16","uninstal","uninstall(build","until","us","via","without","won't","{","}","中可以看到","中,存在一些","也在当前包中。如果需要对配置进行扩展,增强","创建","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","包","包依赖了","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","和","和插件系统。这个包放置在根目录中是因为这个包是","和第三方功能的扩展)。","在","接口如下:","提供的用于生成","方法安装插件。","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","的顶级包,而且其依赖的所有包只来自","级别的配置,这些配置是针对当前服务的。而对应的","自身和标准库(config","需要使用"],"topics/config.html":["'myconfig.name.firstname'.","'nirvana.ip'","(e.g.","(from","(in","(pem","(with","*cobra.command","*int,","*nirvana.config)","*string).","...customoption)","...definition.descriptor)","...plugin)","./","./config/","//","/etc/nirvana/",">","[]string","[]string.","`","`desc:\"desc","`desc:\"nirvana","`desc:\"tl","`desc`","`desc`).","`key`","`pointer`","add","add(point","addopt","addoption(prefix","ag","age\"`","associ","basic","behavior","bool","bool.","case","cert","certif","char","check","collect","comamnd","command","command(cfg","command.","config","config.","configur","configure(cfg","contain","convert","current","custom","customopt","data","default","default,","desc","describ","descript","divid","doc","don't","empti","enabl","enableplugin","enableplugin(plugin","env","env,","error","exampl","example):","example.ag","example.firstnam","example:","example_ag","example_first_nam","execut","execute(descriptor","executewithconfig","executewithconfig(cfg","executing.","field","field,","field.","file)","file,","fill","first","firstnam","flag","flag,","flags,","flags/env/config","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","follow","format)","func","get(key","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","github.com/spf13/cobra","github.com/spf13/vip","given","golang","help","help`,","here","hook","hook()","hook.","https\"`","https.","insensit","instead","int","int.","int16","int32","int32.","int64","int64.","int8","interfac","interface.","interface{}","interface{})","interface{},","ip","ip\"`","is:","isset","isset(key","it'","key","key.","key/valu","listen","listen.","locations.","method","methods.","name","name\"`","name()","name.","namespaces.","nirvana","nirvana.","nirvana.json","nirvana.toml","nirvana.yaml","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","non","obtain","on","option","option,","options.","option,并且实现","order:","overrid","override,","place","plugin","plugins.","pointer","port","port\"`","prefix","prioriti","privat","recommended.","regiser.","retriev","return","run","see","server","server.","set","set(key","set.","sethook","sethook(hook","short","shortflag","singl","specif","store,","store.","string","string)","string,","string.","struct","struct.","tag","time.dur","time.duration.","two","type","uint","uint.","uint16","uint32","uint32.","uint64","uint64.","uint8","up","us","use.","valu","via","viper","want","{","{executablefilepath}/","{executablefilepath}/config/","}","中传递","中的公开字段根据一定的规则(规则参考上面的注释)从","以外,config","包","包中对","包会从以下文件列表中读取配置文件:","包利用","包提供了一个","包的插件能力:","和","和相应的功能。","和配置读取,为","如果读取到配置文件,那么除了使用","实现了","扩展了","接口。用户在","接口如下:","接收配置以外,还可以通过一些帮助方法获取配置:","服务启动提供了命令行支持。","服务配置的特殊性,config","来启用插件,并且将插件","来表达这些配置:","注:如果在","由于","目录:","要求每个插件提供一个","进行了扩展,涉及到字段的改变,也需要在这个包中修改","配置文件名:","除了插件"],"topics/rest.html":["\"http\"","\"https\".","(*client,","(*http.response,","(c","(r","*client)","*config)","*http.request)","*map[string]string)","*request","*request)","...","...interface{})","//","api","bodi","body(contenttyp","builder","check","client","client.","client。而","code","config","config.","context.context)","creat","data","data(valu","definit","describ","do(ctx","do(req","empty,","error","error)","execut","executor","file","file(nam","form","form(nam","func","header","header(nam","host","host:port","http","http.defaultcli","implement","int,","interfac","interface{})","meta","meta(valu","method","newclient","newclient(cfg","nirvana","parameter.","path","path(nam","path.","path,query,header,form,file,bodi","pattern","pointer.","prefab","queri","query(nam","request","request(method","request.","requestexecutor","requests.","request。config","respons","rest","result.","right.","scheme","scheme.","server.","set","specif","statu","string","string)","string,","struct","type","url","us","used.","valu","{","}","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","会被由命令","保存了一个请求的数据,用","则由","创建,用来表示每一个","包","包提供了一个简单的","和","在这个包中,主要包含三个概念:config,cli","方法返回,因此这两种类型没有对应的方法。","是","是由服务端生成而不由客户端提交,error","服务。","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","注:这个","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","用于真正发起请求,并完成","用于访问","由","的填充。","的方法与","的配置,用于创建","的除了","请求。"],"topics/utils.html":["\"\"","\"alias\"","\"descriptors\"","\"modifiers\"","\"origin\"","(","(*api.definitions,","(*definitions,","(*types.package,","(a","(ac","(b","(exported)","(includ","(types.object,","(unexported)",")","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*comment","*contain","*container)","+nirvana:api=option:\"value\"。","...","...definition.descriptor)","...service.definitionmodifier)","...string)","//","0.","=","[]*ast.commentgroup","[]byte","[]exampl","[]funcfield","[]int","[]paramet","[]result","[]string","[]string{commentsoptiondescriptors,","[]structfield","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","abov","add","adddescriptor","adddescriptor(descriptor","addmodifi","addmodifier(modifi","alias.","analyz","analyzeranalyz","ananlyzer.","anonym","api","apibuild","apis.","array,","befor","between","bool","bool)","brief","build","build()","builder","builder.","builder:","bytes.","call","case","cases,","client","code","code.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","complet","conflict","const","consum","consume.","consumes.","contain","container.","containercontain","content","creat","current","data","data.","declar","def.definition.","default","definit","definition.","definition.destin","definition.method","definition.sourc","definitions.","definition此处的","depend","describ","descript","descriptions.","descriptor","descriptor'","descriptors.","descriptor。然后动态生成一个","destin","differ","directori","elem","element","embed","empti","empty,","encod","equal","error","error)","error.","errorproduc","exampl","example.","extract","field","field.","findpackag","findpackages(target","from.","func","funcfield","function","function.","gener","generate()","generators/golang","generators/swagg","generators/util","github.com/go","go","golang","handler","handler.","hold","http","httpcode","httpmethod","identifi","immedi","import","import(path","index","indic","inform","input","instanc","int","invalid","itself).","key","keyword.","kind","kind.","line","list","lower","main.go","mani","map","map,","map.","map[string][]definit","map[string][]str","map[typename]*typ","mean","method","method.","modifi","modifiers.","name","name.","names.","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newcontain","newcontainer(root","nirvana","nirvana.yaml。","object","objectof","objectof(pkg,","offset","on.","openapi","openapi/spec","option","options.","optionsregexp","origin","out","output","overrid","packag","package.","packagecom","packagecomments(path","packages(par","packages.","paramet","parameter.","parameters.","parent","pars","parsecom","parsecomments(com","path","pkgpath","pointer.","pos.","present","printer","produc","produce.","produces.","project","qualifi","reflect.kind","reflect.structtag","regexp.mustcompile(`^[","relat","request.","rest","result","result.","results.","retrun","return","same","sequenc","short","show","slice,","sourc","specifi","stdout","string","string)","string,","struct","struct,","struct.","structfield","succeess","success","summari","swagger","tag","tag.","target","target.","termin","token.pos)","type","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","type为了能让","uintptr","under","uniqu","upper","us","util","valu","value.","values.","var","vendor","version","ways.","whether","within","{","}","中打印表格的功能。","信息的提取。","包","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中,提供了如下功能:","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包则是利用了","包和","包实际上都是利用了","包提供的数据结构生成","包来说就简单很多了,这个包里包含一个","包的","包相对","包读取源码并生成","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于读取项目源码,并生成与","去读取指定路径的源码,然后从中找到标记了","取得返回值,反序列化成","可以读取源码,获取结构对象和注释信息。","后通过","和","在","大部分字段与","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","客户端。","对应","将","执行","接口。swagger","数据。","文件","文档。","文档和客户端。","有关的所有数据结构,产出的结构可用于生成文档和客户端。","来生成","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","用于分析源码的","用于表示代码注释的","的","的定义。","的调用者。这样就完成了对一个项目的","的返回结果,构建出相应的客户端和文档。golang","相关的所有定义和类型信息。api","相关类型:","系列包","系列包包含:","结构,然后再返回给","能转换为可读的数据结构,构建了","读取源码并进行分析,产出","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","选项的注释。两个选项的值对应两个函数,分别返回","除了","集合上述所有功能的","首先会利用"],"topics/command.html":["!=","\"\",","\"boilerplate\",","\"build","\"creat","\"debian:jessie\",","\"docker","\"first","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"imag","\"init","\"nirvana","\"nirvana\",","\"path","\"registries\",","\"runtim","\"v0.1.0\",","\"version\",","&cobra.command{","&initoptions{}","(","(o",")","*cobra.command","*cobra.command)","*cobra.command,","*initoptions)","*pflag.flagset)","//","/path/to/project\",",":=","=","[]string","[]string)","[]string{},","api","api.register(root)","api,用于生成","arg","args);","base","basic","boilerpl","boilerplate\")","build","buildimag","client.register(root)","client,用于生成","cmd","cmd/nirvana","commands.","err","error","flag","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","func","func(cmd","imag","image\",","imageprefix","imagesuffix","import","init","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","instal","install(flag","log.fatalln(err)","long:","main()","main.go","newinitcommand","newinitcommand()","nil","nirvana","option","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","packag","prefix\")","prefix\",","project","project\")","project.register(root)","regist","register(root","registri","registries\")","return","root","root.addcommand(newinitcommand())","root.execute();","run","run(cmd","run:","runtimeimag","short:","string","struct","structure\",","suffix\")","suffix\",","toolchains\",","type","use:","valid","validate(cmd","var","version","{","}","},","一个创建命令的私有函数","一个表示当前命令的所有参数的","中","中,目前包括三个命令:","到命令中","命令","命令为例,说明单个命令的基本结构:","命令对应的包在","基本结构如下:","如果需要新增命令扩展","实现的","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","接下来以","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法用于安装","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","根命令中,比如:","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","然后在","的功能,需要按照上述结构进行开发。","的文件用于把当前的命令加入到","这个包并进行命令注册:"]},"length":40},"tokenStore":{"root":{"0":{"7":{"0":{"2":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292}}},"docs":{}},"docs":{}},"docs":{},";":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"1":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"1":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"0":{"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"1":{"docs":{},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},".":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"5":{"docs":{},":":{"4":{"7":{"docs":{},":":{"5":{"2":{"docs":{},".":{"0":{"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"4":{"9":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"0":{"docs":{},":":{"5":{"4":{"docs":{},".":{"1":{"5":{"6":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"5":{"docs":{},".":{"6":{"0":{"9":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},"+":{"0":{"8":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"1":{"0":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"1":{"docs":{},")":{"docs":{},"中":{"docs":{},",":{"docs":{},"若":{"docs":{},"项":{"docs":{},"目":{"docs":{},"处":{"docs":{},"于":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"docs":{}},"9":{"docs":{},".":{"docs":{},"x":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"把":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"2":{"0":{"0":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},"1":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"2":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331}}},"4":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},"docs":{}},"2":{"9":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"7":{"7":{"4":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"3":{"docs":{},".":{"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"3":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"3":{"0":{"0":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"docs":{}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"4":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"4":{"0":{"4":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"9":{"1":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"5":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"5":{"0":{"0":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"docs":{}},"8":{"4":{"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"6":{"5":{"8":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"7":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"5":{"docs":{},".":{"1":{"0":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"7":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"8":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"9":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"6":{"docs":{},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"3":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"4":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"5":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"6":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"7":{"1":{"6":{"8":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"2":{"3":{"1":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.04849884526558892}}}},"2":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}},"docs":{}},"docs":{}},"7":{"2":{"5":{"docs":{},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"8":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"2":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"8":{"0":{"8":{"0":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"docs":{}},"docs":{}},"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"9":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},".":{"1":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"docs":{}}},"9":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},"]":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.06666666666666667},"guides/project.html":{"ref":"guides/project.html","tf":0.0330188679245283},"guides/api.html":{"ref":"guides/api.html","tf":10.038535645472061},"guides/doc.html":{"ref":"guides/doc.html","tf":3.442708333333333},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/version.html":{"ref":"plugins/version.html","tf":0.05},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555},"topics/start.html":{"ref":"topics/start.html","tf":0.046875},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.033444816053511704},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},":":{"1":{"7":{"9":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"8":{"7":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"9":{"5":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"服":{"docs":{},"务":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"接":{"docs":{},"入":{"docs":{},"其":{"docs":{},"他":{"docs":{},"日":{"docs":{},"志":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"m":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"e":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.026234567901234566}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"d":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"b":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"o":{"docs":{},"v":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"g":{"docs":{},"o":{"1":{"1":{"1":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.014150943396226415},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.06666666666666667},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"l":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"通":{"docs":{},"过":{"docs":{},"如":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"完":{"docs":{},"成":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"包":{"docs":{},"的":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"o":{"docs":{},"n":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"执":{"docs":{},"行":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"i":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"v":{"docs":{},"i":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"@":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{},"{":{"docs":{},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},",":{"docs":{},"两":{"docs":{},"者":{"docs":{},"没":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{},"_":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"docs":{}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{}},"8":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":5.08235294117647},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"。":{"docs":{},"这":{"docs":{},"些":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}},":":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"s":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.3333333333333333},"guides/project.html":{"ref":"guides/project.html","tf":0.0330188679245283},"guides/api.html":{"ref":"guides/api.html","tf":0.025048169556840076},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.0380952380952381},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0392156862745098},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.03271028037383177},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0859375},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":10.02572347266881},"topics/config.html":{"ref":"topics/config.html","tf":0.021604938271604937},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"y":{"docs":{},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.16666666666666666},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.06896551724137931},"plugins/version.html":{"ref":"plugins/version.html","tf":0.15},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.08333333333333333}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"_":{"docs":{},"i":{"docs":{},"p":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"服":{"docs":{},"务":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{},"返":{"docs":{},"回":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"y":{"docs":{},"@":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702}}},"s":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"e":{"docs":{},"w":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"4":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"2":{"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"9":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"3":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"5":{"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"5":{"0":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"2":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"3":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"4":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"5":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"6":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"7":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"8":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"1":{"0":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"1":{"docs":{},")":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}},"e":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"全":{"docs":{},"不":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"与":{"docs":{},"其":{"docs":{},"他":{"docs":{},"普":{"docs":{},"通":{"docs":{},"函":{"docs":{},"数":{"docs":{},"没":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},"。":{"docs":{},"基":{"docs":{},"于":{"docs":{},"此":{"docs":{},",":{"docs":{},"框":{"docs":{},"架":{"docs":{},"中":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"和":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"都":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"侵":{"docs":{},"入":{"docs":{},"用":{"docs":{},"户":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"必":{"docs":{},"须":{"docs":{},"要":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"作":{"docs":{},"出":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"应":{"docs":{},"当":{"docs":{},"以":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"提":{"docs":{},"供":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"允":{"docs":{},"许":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"对":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"在":{"docs":{},"当":{"docs":{},"前":{"docs":{},"包":{"docs":{},"中":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"增":{"docs":{},"强":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"设":{"docs":{},"计":{"docs":{},"上":{"docs":{},"与":{"docs":{},"现":{"docs":{},"存":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"关":{"docs":{},"心":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"传":{"docs":{},"输":{"docs":{},"过":{"docs":{},"程":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"大":{"docs":{},"大":{"docs":{},"降":{"docs":{},"低":{"docs":{},"数":{"docs":{},"据":{"docs":{},"传":{"docs":{},"输":{"docs":{},"层":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"层":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},",":{"docs":{},"主":{"docs":{},"要":{"docs":{},"包":{"docs":{},"含":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},":":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"发":{"docs":{},"布":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"修":{"docs":{},"改":{"docs":{},"并":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"实":{"docs":{},"际":{"docs":{},"场":{"docs":{},"景":{"docs":{},"中":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"除":{"docs":{},"了":{"docs":{},"正":{"docs":{},"常":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"处":{"docs":{},"理":{"docs":{},"各":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"到":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},",":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"现":{"docs":{},"一":{"docs":{},"个":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"每":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"没":{"docs":{},"有":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"整":{"docs":{},"个":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"源":{"docs":{},"头":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"和":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"个":{"docs":{},"公":{"docs":{},"共":{"docs":{},"的":{"docs":{},"网":{"docs":{},"关":{"docs":{},"进":{"docs":{},"行":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"再":{"docs":{},"进":{"docs":{},"一":{"docs":{},"步":{"docs":{},"对":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"整":{"docs":{},"合":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"前":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"涵":{"docs":{},"盖":{"docs":{},"了":{"docs":{},"启":{"docs":{},"动":{"docs":{},"服":{"docs":{},"务":{"docs":{},"过":{"docs":{},"程":{"docs":{},"所":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"大":{"docs":{},"量":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"导":{"docs":{},"致":{"docs":{},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"引":{"docs":{},"用":{"docs":{},"各":{"docs":{},"种":{"docs":{},"各":{"docs":{},"样":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"建":{"docs":{},"立":{"docs":{},"一":{"docs":{},"个":{"docs":{},"综":{"docs":{},"合":{"docs":{},"项":{"docs":{},"目":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{},"该":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"每":{"docs":{},"个":{"docs":{},"包":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"主":{"docs":{},"要":{"docs":{},"代":{"docs":{},"码":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"两":{"docs":{},"个":{"docs":{},"额":{"docs":{},"外":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333}},"中":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"这":{"docs":{},"些":{"docs":{},"组":{"docs":{},"件":{"docs":{},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"式":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"计":{"docs":{},"理":{"docs":{},"念":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"会":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"通":{"docs":{},"常":{"docs":{},"足":{"docs":{},"够":{"docs":{},"使":{"docs":{},"用":{"docs":{},"者":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"微":{"docs":{},"服":{"docs":{},"务":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"之":{"docs":{},"间":{"docs":{},"也":{"docs":{},"会":{"docs":{},"存":{"docs":{},"在":{"docs":{},"调":{"docs":{},"用":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"方":{"docs":{},"便":{"docs":{},"快":{"docs":{},"速":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"件":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"中":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"是":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"一":{"docs":{},"个":{"docs":{},"着":{"docs":{},"重":{"docs":{},"于":{"docs":{},"提":{"docs":{},"高":{"docs":{},"开":{"docs":{},"发":{"docs":{},"效":{"docs":{},"率":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"解":{"docs":{},"耦":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}},"短":{"docs":{},"语":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"具":{"docs":{},"有":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"都":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"样":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"指":{"docs":{},"具":{"docs":{},"有":{"docs":{},"相":{"docs":{},"同":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"的":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"具":{"docs":{},"体":{"docs":{},"要":{"docs":{},"验":{"docs":{},"证":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"上":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"否":{"docs":{},"由":{"docs":{},"这":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"工":{"docs":{},"厂":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"包":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"负":{"docs":{},"责":{"docs":{},"日":{"docs":{},"志":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"处":{"docs":{},"理":{"docs":{},"基":{"docs":{},"础":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}},"由":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"而":{"docs":{},"不":{"docs":{},"由":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"核":{"docs":{},"心":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"让":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{},"框":{"docs":{},"架":{"docs":{},"隔":{"docs":{},"离":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"处":{"docs":{},"于":{"docs":{},"最":{"docs":{},"高":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"设":{"docs":{},"计":{"docs":{},"核":{"docs":{},"心":{"docs":{},"思":{"docs":{},"想":{"docs":{},"是":{"docs":{},":":{"docs":{},"隔":{"docs":{},"离":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"设":{"docs":{},"计":{"docs":{},"概":{"docs":{},"览":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"概":{"docs":{},"览":{"docs":{"./":{"ref":"./","tf":10}}},"念":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"各":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"也":{"docs":{},"是":{"docs":{},"依":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"基":{"docs":{},"本":{"docs":{},"法":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.06666666666666667}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"和":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"出":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"和":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"值":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"该":{"docs":{},"请":{"docs":{},"求":{"docs":{},"还":{"docs":{},"是":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},"数":{"docs":{},"据":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"包":{"docs":{},"定":{"docs":{},"义":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"字":{"docs":{},"段":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"忽":{"docs":{},"略":{"docs":{},"所":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"通":{"docs":{},"常":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"为":{"docs":{},"了":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"来":{"docs":{},"共":{"docs":{},"同":{"docs":{},"标":{"docs":{},"识":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"识":{"docs":{},"别":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"框":{"docs":{},"架":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{},"。":{"docs":{},"下":{"docs":{},"表":{"docs":{},"中":{"docs":{},"展":{"docs":{},"示":{"docs":{},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"用":{"docs":{},"途":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"这":{"docs":{},"个":{"docs":{},"短":{"docs":{},"语":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}},"户":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"。":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"会":{"docs":{},"递":{"docs":{},"归":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"以":{"docs":{},"寻":{"docs":{},"找":{"docs":{},"带":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"中":{"docs":{},",":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"避":{"docs":{},"免":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"接":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},",":{"docs":{},"与":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"字":{"docs":{},"段":{"docs":{},"定":{"docs":{},"义":{"docs":{},"与":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"有":{"docs":{},"关":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"调":{"docs":{},"换":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"修":{"docs":{},"改":{"docs":{},"为":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"工":{"docs":{},"具":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"注":{"docs":{},"册":{"docs":{},"方":{"docs":{},"法":{"docs":{},"即":{"docs":{},"可":{"docs":{},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"与":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"式":{"docs":{},"有":{"docs":{},"两":{"docs":{},"种":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"最":{"docs":{},"小":{"docs":{},"值":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"路":{"docs":{},"径":{"docs":{},"上":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}},"数":{"docs":{},"据":{"docs":{},"来":{"docs":{},"源":{"docs":{},"都":{"docs":{},"是":{"docs":{},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"添":{"docs":{},"加":{"docs":{},"上":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"都":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"这":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"满":{"docs":{},"足":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"表":{"docs":{},"达":{"docs":{},"性":{"docs":{},"很":{"docs":{},"差":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"全":{"docs":{},"局":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"性":{"docs":{},"比":{"docs":{},"较":{"docs":{},"难":{"docs":{},"维":{"docs":{},"护":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"作":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"使":{"docs":{},"用":{"docs":{},"方":{"docs":{},"法":{"docs":{},"和":{"docs":{},"普":{"docs":{},"通":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"命":{"docs":{},"令":{"docs":{},",":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"错":{"docs":{},"误":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"定":{"docs":{},"义":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"动":{"docs":{},"态":{"docs":{},"函":{"docs":{},"数":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"先":{"docs":{},"生":{"docs":{},"成":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"被":{"docs":{},"真":{"docs":{},"正":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"里":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"方":{"docs":{},"便":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"封":{"docs":{},"装":{"docs":{},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"顶":{"docs":{},"级":{"docs":{},"包":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"其":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"包":{"docs":{},"只":{"docs":{},"来":{"docs":{},"自":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}},"填":{"docs":{},"充":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"除":{"docs":{},"了":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"调":{"docs":{},"用":{"docs":{},"者":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"对":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"照":{"docs":{},"上":{"docs":{},"述":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"把":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"\"":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"v":{"1":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"docs":{}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"/":{"docs":{},"{":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"n":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{},"\"":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"f":{"1":{"3":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"\"":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"\"":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"s":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"r":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"x":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"m":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"h":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"i":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"*":{"docs":{},"/":{"docs":{},"*":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"#":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.11320754716981132}}},"$":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.030660377358490566},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/start.html":{"ref":"topics/start.html","tf":0.03125}},"g":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"/":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"{":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},".":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"1":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"docs":{}}},".":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.0380952380952381},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"*":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"/":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"/":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},":":{"docs":{},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"docs":{}}}}}}},"/":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.05009633911368015},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.09056603773584905},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.05952380952380952},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.047619047619047616},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.04938271604938271},"concepts/context.html":{"ref":"concepts/context.html","tf":0.09289617486338798},"concepts/source.html":{"ref":"concepts/source.html","tf":0.058823529411764705},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.09326424870466321},"concepts/error.html":{"ref":"concepts/error.html","tf":0.03139013452914798},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.0794392523364486},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.024464831804281346},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.04838709677419355},"topics/log.html":{"ref":"topics/log.html","tf":0.11611374407582939},"topics/errors.html":{"ref":"topics/errors.html","tf":0.10392609699769054},"topics/definition.html":{"ref":"topics/definition.html","tf":0.12545126353790614},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.10457516339869281},"topics/router.html":{"ref":"topics/router.html","tf":0.07508532423208192},"topics/service.html":{"ref":"topics/service.html","tf":0.08742514970059881},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.08681672025723473},"topics/config.html":{"ref":"topics/config.html","tf":0.10802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.07272727272727272},"topics/utils.html":{"ref":"topics/utils.html","tf":0.09810479375696766},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"z":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"重":{"docs":{},"定":{"docs":{},"向":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}},"没":{"docs":{},"有":{"docs":{},"就":{"docs":{},"加":{"docs":{},"上":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"2":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"/":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}},"docs":{}}}}},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.08108108108108109}}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"/":{"docs":{},"p":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.10344827586206896}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"=":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422},"topics/definition.html":{"ref":"topics/definition.html","tf":0.026173285198555957},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/errors.html":{"ref":"topics/errors.html","tf":0.009237875288683603},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.018475750577367205},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}},"y":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"(":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},")":{"docs":{},"。":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"o":{"docs":{},"l":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.03278688524590164},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"i":{"docs":{},"e":{"docs":{},"f":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"e":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"d":{"docs":{},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"c":{"docs":{},"k":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/start.html":{"ref":"topics/start.html","tf":0.015625}}},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},"/":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/command.html":{"ref":"topics/command.html","tf":10.004201680672269}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05963302752293578},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},")":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"x":{"docs":{},"t":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":10.010928961748634},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809}},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"这":{"docs":{},"种":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"u":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/converter.html":{"ref":"topics/converter.html","tf":0.125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"2":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},")":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.384009009009009},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.049019607843137254},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.06542056074766354},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":10.01388888888889},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.14705882352941177},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01929260450160772},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},":":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"b":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},":":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"d":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"s":{"docs":{},".":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"i":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},"}":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}}},"在":{"docs":{},"源":{"docs":{},"码":{"docs":{},"解":{"docs":{},"析":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"注":{"docs":{},"释":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"要":{"docs":{},"对":{"docs":{},"注":{"docs":{},"释":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"注":{"docs":{},"释":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"格":{"docs":{},"式":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"a":{"docs":{},"m":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.042483660130718956},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}}}}}}}}}}}}},"v":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"docs":{}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{},"v":{"docs":{},"c":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"v":{"1":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.027707808564231738},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168}},":":{"1":{"0":{"6":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}},"7":{"3":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"8":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{}},"docs":{}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"g":{"docs":{},"o":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"{":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"而":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}},"s":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.02287581699346405}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.037037037037037035},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"e":{"docs":{},"r":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"i":{"docs":{},"f":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"g":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364}},")":{"docs":{},"`":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},":":{"docs":{},"j":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.057971014492753624},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.015414258188824663},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.12380952380952381},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/definition.html":{"ref":"topics/definition.html","tf":10.016245487364621},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"v":{"1":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"2":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"docs":{}},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"。":{"docs":{},"在":{"docs":{},"我":{"docs":{},"们":{"docs":{},"实":{"docs":{},"际":{"docs":{},"开":{"docs":{},"发":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"会":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"则":{"docs":{},"是":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/method.html":{"ref":"topics/method.html","tf":10}}}}}}}}},"此":{"docs":{},"处":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},",":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"=":{"docs":{},"{":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"(":{"docs":{},")":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.008918617614269788}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}},"\"":{"docs":{},")":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"然":{"docs":{},"后":{"docs":{},"动":{"docs":{},"态":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}},":":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682}}}}},"i":{"docs":{},"d":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.010362694300518},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},",":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"a":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"o":{"docs":{},"c":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"还":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"n":{"docs":{},"e":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}},"'":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"docs":{}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"b":{"docs":{},"e":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.05045871559633028},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},"u":{"docs":{},"t":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"e":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},",":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"则":{"docs":{},"认":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"。":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}}}},"r":{"docs":{},"r":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02702702702702703},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446}},"o":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.07623318385650224},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":10.057736720554272},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.015113350125944584},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.013207547169811321},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"s":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"$":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"比":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"多":{"docs":{},"出":{"docs":{},"更":{"docs":{},"多":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":10.119047619047619},"topics/service.html":{"ref":"topics/service.html","tf":0.011976047904191617}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/utils.html":{"ref":"topics/utils.html","tf":0.020066889632107024}},"a":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"b":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"x":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}}}}}},"o":{"docs":{},"m":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"a":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}},",":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"(":{"docs":{},"f":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"k":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"u":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.020151133501259445},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.052830188679245285},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.037383177570093455},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0375},"topics/validator.html":{"ref":"topics/validator.html","tf":0.049019607843137254},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.02572347266881029},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.04},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"(":{"docs":{},"c":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"d":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}},"l":{"docs":{},"l":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},":":{"docs":{},".":{"docs":{},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},"*":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.02771362586605081}}},"y":{"docs":{},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801}}},"。":{"docs":{},"也":{"docs":{},"直":{"docs":{},"接":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"类":{"docs":{},"表":{"docs":{},"示":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},",":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}},"s":{"docs":{},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"/":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},",":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"方":{"docs":{},"便":{"docs":{},"用":{"docs":{},"户":{"docs":{},"通":{"docs":{},"过":{"docs":{},"外":{"docs":{},"部":{"docs":{},"选":{"docs":{},"项":{"docs":{},"来":{"docs":{},"改":{"docs":{},"变":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"a":{"docs":{},"t":{"3":{"2":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"docs":{}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},"f":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}}}},"l":{"docs":{},"n":{"docs":{},";":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}}}}}}}}}}}}},")":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"o":{"docs":{},"k":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.06451612903225806},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"(":{"docs":{},")":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"l":{"docs":{},"d":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.009433962264150943},"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"concepts/context.html":{"ref":"concepts/context.html","tf":0.02185792349726776},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01818181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"/":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"得":{"docs":{},"结":{"docs":{},"果":{"docs":{},"(":{"docs":{},"默":{"docs":{},"认":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"1":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"得":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"u":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"2":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"2":{"0":{"1":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"2":{"0":{"4":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"(":{"2":{"0":{"0":{"docs":{},")":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"请":{"docs":{},"求":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}},"。":{"docs":{},"如":{"docs":{},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"拿":{"docs":{},"到":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"您":{"docs":{},"明":{"docs":{},"确":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"l":{"docs":{},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"`":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"r":{"docs":{},"e":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.025906735751295335},"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":5.0880829015544045},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"s":{"docs":{},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"这":{"docs":{},"些":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},":":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"表":{"docs":{},"现":{"docs":{},"形":{"docs":{},"式":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"或":{"docs":{},"者":{"docs":{},"同":{"docs":{},"等":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{},"闭":{"docs":{},"包":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364}}}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"必":{"docs":{},"要":{"docs":{},"文":{"docs":{},"件":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{}},"3":{"2":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.01437125748502994},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},")":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},",":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"n":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}},"f":{"docs":{},"o":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}},"r":{"docs":{},"m":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"f":{"docs":{},"|":{"docs":{},"l":{"docs":{},"n":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.008122743682310469},"topics/validator.html":{"ref":"topics/validator.html","tf":0.013071895424836602},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.02857142857142857},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/method.html":{"ref":"topics/method.html","tf":0.06918238993710692},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},".":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"a":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}},"(":{"docs":{},"i":{"docs":{},"p":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.07142857142857142}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"s":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},")":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"k":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"g":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/log.html":{"ref":"topics/log.html","tf":10.045023696682465}},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.023696682464454975}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"topics/log.html":{"ref":"topics/log.html","tf":0.018957345971563982},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"l":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"输":{"docs":{},"出":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"。":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}},"s":{"docs":{},"\"":{"docs":{},"`":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985}}}}},"o":{"docs":{},"k":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},"w":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"n":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"k":{"docs":{},"e":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"e":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}}},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{},"会":{"docs":{},"写":{"docs":{},"入":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"]":{"docs":{},"*":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"h":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"3":{"2":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"docs":{}},"docs":{}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.017632241813602016},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/error.html":{"ref":"concepts/error.html","tf":0.017937219730941704},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},".":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}}}},")":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/method.html":{"ref":"topics/method.html","tf":0.03773584905660377},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.01607717041800643},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"*":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"s":{"docs":{},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"a":{"docs":{},"n":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"d":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":10.024691358024691},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.013651877133105802},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"a":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"o":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"x":{"docs":{},"m":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.02843601895734597}}}}}}}}},"o":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"i":{"docs":{},"f":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}},"i":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":10.095238095238095},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"u":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}}}},"e":{"docs":{},".":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"r":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208}},":":{"docs":{},"v":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"docs":{}}},"docs":{}}},"docs":{}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}},"l":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"k":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":5.011764705882353},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"h":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"s":{"docs":{},"s":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"k":{"docs":{},"g":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.03125},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"s":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.004459308807134894}}}}}}}},"r":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"a":{"docs":{},"b":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":10.095238095238095},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}},"启":{"docs":{},"用":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"即":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"名":{"docs":{},"称":{"docs":{},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.377252252252252},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"(":{"docs":{},"w":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"r":{"docs":{},"s":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"他":{"docs":{},"们":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"和":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}},",":{"docs":{},"即":{"docs":{},"允":{"docs":{},"许":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406}},"s":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"x":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"o":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"s":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"i":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"r":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},"\"":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"u":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/method.html":{"ref":"topics/method.html","tf":0.05660377358490566}},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"s":{"docs":{},"t":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}},"a":{"docs":{},"y":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}},".":{"docs":{},"v":{"9":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"套":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.028037383177570093},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/config.html":{"ref":"topics/config.html","tf":0.007716049382716049}},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}},"s":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}},"e":{"docs":{},"r":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647}},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},",":{"docs":{},"方":{"docs":{},"便":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"判":{"docs":{},"断":{"docs":{},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},",":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},".":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253}},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"[":{"docs":{},"a":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}},"e":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},".":{"docs":{},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"`":{"docs":{},"^":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"o":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"r":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"q":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.03571428571428571},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.025454545454545455}},",":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"。":{"docs":{},"可":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/rest.html":{"ref":"topics/rest.html","tf":10.018181818181818},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"s":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.037783375314861464},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.020754716981132074},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.04918032786885246},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.02242152466367713},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03058103975535168},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.027544910179640718},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/config.html":{"ref":"topics/config.html","tf":0.032407407407407406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"l":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"f":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.08775981524249422}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"e":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.05466237942122187},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},".":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"=":{"docs":{},"\"":{"docs":{},":":{"8":{"0":{"8":{"1":{"docs":{},"\"":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"(":{"docs":{},")":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"c":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":10.009580838323354},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"e":{"docs":{},".":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/router.html":{"ref":"topics/router.html","tf":10}}}}}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"s":{"docs":{},".":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.010802469135802469},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909}},".":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"n":{"docs":{},"s":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.016587677725118485}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996}}}}}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"topics/definition.html":{"ref":"topics/definition.html","tf":0.011732851985559567},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"。":{"docs":{},"值":{"docs":{},"使":{"docs":{},"用":{"docs":{},"逗":{"docs":{},"号":{"docs":{},"分":{"docs":{},"隔":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"表":{"docs":{},"示":{"docs":{},"参":{"docs":{},"数":{"docs":{},"来":{"docs":{},"源":{"docs":{},",":{"docs":{},"第":{"docs":{},"二":{"docs":{},"个":{"docs":{},"表":{"docs":{},"示":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}},"(":{"docs":{},")":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},",":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"b":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"e":{"docs":{},"n":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"t":{"docs":{},"h":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"a":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}},".":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"t":{"docs":{},"u":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.02072538860103627},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01263537906137184},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.016339869281045753},"topics/router.html":{"ref":"topics/router.html","tf":0.034129692832764506},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273},"topics/utils.html":{"ref":"topics/utils.html","tf":0.016722408026755852},"topics/command.html":{"ref":"topics/command.html","tf":0.025210084033613446}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.026415094339622643},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.125},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.029320987654320986},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.007803790412486065}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02909090909090909},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.007707129094412331},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/router.html":{"ref":"topics/router.html","tf":0.017064846416382253},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091},"topics/utils.html":{"ref":"topics/utils.html","tf":0.014492753623188406},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"{":{"docs":{},"}":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},"s":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}},"\"":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}},"y":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"b":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.010238907849829351}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},"\"":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"v":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673}},"a":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"b":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.027522935779816515}},"(":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"h":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},",":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}},"w":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"u":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0047169811320754715}},"s":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/log.html":{"ref":"topics/log.html","tf":0.014218009478672985},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.008383233532934131},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"d":{"docs":{},".":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"a":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"p":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"r":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/rest.html":{"ref":"topics/rest.html","tf":0.01090909090909091}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.018691588785046728},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.006430868167202572}},"l":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"1":{"6":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"docs":{}},"3":{"2":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"6":{"4":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"docs":{}},"8":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}},"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},"*":{"docs":{},",":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":10.002229654403568}}}}}},"v":{"1":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.01650943396226415},"guides/client.html":{"ref":"guides/client.html","tf":0.022670025188916875},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}},"(":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"f":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"2":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.009174311926605505}}},"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.010135135135135136},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"s":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"a":{"docs":{},"r":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.04150943396226415},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.1503267973856209},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.005988023952095809},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"(":{"docs":{},"*":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"=":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"docs":{}}}}}}}}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},".":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"u":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/context.html":{"ref":"concepts/context.html","tf":0.0273224043715847},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.015544041450777202},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.015342960288808664},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/config.html":{"ref":"topics/config.html","tf":0.035493827160493825},"topics/rest.html":{"ref":"topics/rest.html","tf":0.02181818181818182},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"是":{"docs":{},"对":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/router.html":{"ref":"topics/router.html","tf":0.006825938566552901},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"a":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"c":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"│":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.10141509433962265},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}},"└":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.03537735849056604},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03669724770642202}}}}},"├":{"docs":{},"─":{"docs":{},"─":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.04009433962264151},"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.045871559633027525}}}}},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"是":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"样":{"docs":{},"板":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"如":{"docs":{},"何":{"docs":{},"放":{"docs":{},"到":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{},"表":{"docs":{},"现":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"每":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"也":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"直":{"docs":{},"接":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"的":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}},"位":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"前":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"额":{"docs":{},"外":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"与":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}},"添":{"docs":{},"加":{"docs":{},"在":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"修":{"docs":{},"改":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"动":{"docs":{},"作":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}},"携":{"docs":{},"带":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"也":{"docs":{},"经":{"docs":{},"常":{"docs":{},"看":{"docs":{},"到":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"组":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}},"错":{"docs":{},"误":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"是":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"任":{"docs":{},"何":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"目":{"docs":{},"前":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}},"添":{"docs":{},"加":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"唯":{"docs":{},"一":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}},"为":{"docs":{},"相":{"docs":{},"同":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"径":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"不":{"docs":{},"能":{"docs":{},"确":{"docs":{},"定":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"时":{"docs":{},"不":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}},"包":{"docs":{},"含":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}},"了":{"docs":{},"两":{"docs":{},"个":{"docs":{},"组":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"许":{"docs":{},"多":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"实":{"docs":{},"例":{"docs":{},"并":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"传":{"docs":{},"递":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"的":{"docs":{},"公":{"docs":{},"开":{"docs":{},"字":{"docs":{},"段":{"docs":{},"根":{"docs":{},"据":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"(":{"docs":{},"规":{"docs":{},"则":{"docs":{},"参":{"docs":{},"考":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},")":{"docs":{},"从":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}},"打":{"docs":{},"印":{"docs":{},"表":{"docs":{},"格":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"为":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"所":{"docs":{},"有":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.047619047619047616}},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}},"保":{"docs":{},"证":{"docs":{},"业":{"docs":{},"务":{"docs":{},"与":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"演":{"docs":{},"示":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"逐":{"docs":{},"步":{"docs":{},"构":{"docs":{},"建":{"docs":{},"这":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"构":{"docs":{},"建":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"端":{"docs":{},"口":{"docs":{},"是":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"化":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"设":{"docs":{},"置":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"完":{"docs":{},"整":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"读":{"docs":{},"取":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"从":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"显":{"docs":{},"得":{"docs":{},"非":{"docs":{},"常":{"docs":{},"冗":{"docs":{},"余":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}},"把":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}},"将":{"docs":{},"整":{"docs":{},"个":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"上":{"docs":{},"所":{"docs":{},"有":{"docs":{},"节":{"docs":{},"点":{"docs":{},"按":{"docs":{},"照":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"的":{"docs":{},"顺":{"docs":{},"序":{"docs":{},"将":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"串":{"docs":{},"联":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"并":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"上":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"由":{"docs":{},"命":{"docs":{},"令":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"使":{"docs":{},"用":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}},"范":{"docs":{},"例":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"比":{"docs":{},"较":{"docs":{},"常":{"docs":{},"见":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}},"修":{"docs":{},"改":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"路":{"docs":{},"由":{"docs":{},"之":{"docs":{},"前":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},",":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"时":{"docs":{},"自":{"docs":{},"动":{"docs":{},"生":{"docs":{},"成":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"不":{"docs":{},"过":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"首":{"docs":{},"先":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"非":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"件":{"docs":{},"位":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"到":{"docs":{},"这":{"docs":{},"里":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"安":{"docs":{},"装":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"中":{"docs":{},"自":{"docs":{},"带":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"账":{"docs":{},"户":{"docs":{},"下":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"下":{"docs":{},"载":{"docs":{},"源":{"docs":{},"码":{"docs":{},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"开":{"docs":{},"发":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"从":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"增":{"docs":{},"加":{"docs":{},"相":{"docs":{},"应":{"docs":{},"字":{"docs":{},"段":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"应":{"docs":{},"该":{"docs":{},"使":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"值":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"当":{"docs":{},"前":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"定":{"docs":{},"义":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"考":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"会":{"docs":{},"打":{"docs":{},"印":{"docs":{},"出":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"用":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}},"或":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"双":{"docs":{},"重":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"即":{"docs":{},"请":{"docs":{},"求":{"docs":{},"开":{"docs":{},"始":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"结":{"docs":{},"束":{"docs":{},"一":{"docs":{},"条":{"docs":{},"日":{"docs":{},"志":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}},"显":{"docs":{},"示":{"docs":{},"源":{"docs":{},"地":{"docs":{},"址":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"向":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"启":{"docs":{},"动":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"完":{"docs":{},"成":{"docs":{},"编":{"docs":{},"译":{"docs":{},"工":{"docs":{},"作":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"为":{"docs":{},"例":{"docs":{},",":{"docs":{},"说":{"docs":{},"明":{"docs":{},"单":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"包":{"docs":{},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.007075471698113208},"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.05405405405405406},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"一":{"docs":{},"个":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"插":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"是":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"配":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},",":{"docs":{},"为":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"如":{"docs":{},"果":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"新":{"docs":{},"增":{"docs":{},"命":{"docs":{},"令":{"docs":{},"扩":{"docs":{},"展":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"接":{"docs":{},"收":{"docs":{},"类":{"docs":{},"型":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"类":{"docs":{},"型":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}}},"以":{"docs":{},"下":{"docs":{},"路":{"docs":{},"径":{"docs":{},"都":{"docs":{},"添":{"docs":{},"加":{"docs":{},"了":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},":":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"正":{"docs":{},"常":{"docs":{},",":{"docs":{},"则":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}},"希":{"docs":{},"望":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},"读":{"docs":{},"取":{"docs":{},"到":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"下":{"docs":{},":":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"字":{"docs":{},"段":{"docs":{},"无":{"docs":{},"效":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"进":{"docs":{},"行":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"在":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"必":{"docs":{},"须":{"docs":{},"与":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}},"存":{"docs":{},"放":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.014150943396226415}},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"启":{"docs":{},"动":{"docs":{},"命":{"docs":{},"令":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"在":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"都":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"改":{"docs":{},"或":{"docs":{},"删":{"docs":{},"除":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}},"再":{"docs":{},"对":{"docs":{},"应":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"了":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"一":{"docs":{},"个":{"docs":{},"返":{"docs":{},"回":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"更":{"docs":{},"加":{"docs":{},"明":{"docs":{},"确":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"根":{"docs":{},"据":{"docs":{},"场":{"docs":{},"景":{"docs":{},"确":{"docs":{},"定":{"docs":{},"使":{"docs":{},"用":{"docs":{},"哪":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}},"来":{"docs":{},"确":{"docs":{},"定":{"docs":{},"每":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"的":{"docs":{},"可":{"docs":{},"读":{"docs":{},"性":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"无":{"docs":{},"关":{"docs":{},"性":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"框":{"docs":{},"架":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"不":{"docs":{},"能":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"任":{"docs":{},"何":{"docs":{},"包":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{},"应":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"。":{"docs":{},"用":{"docs":{},"于":{"docs":{},"告":{"docs":{},"知":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"的":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"可":{"docs":{},"能":{"docs":{},"无":{"docs":{},"法":{"docs":{},"正":{"docs":{},"常":{"docs":{},"工":{"docs":{},"作":{"docs":{},")":{"docs":{},"。":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"于":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"没":{"docs":{},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"上":{"docs":{},"添":{"docs":{},"加":{"docs":{},"名":{"docs":{},"为":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"之":{"docs":{},"后":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"开":{"docs":{},"始":{"docs":{},"在":{"docs":{},"容":{"docs":{},"器":{"docs":{},"内":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"打":{"docs":{},"包":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"不":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"需":{"docs":{},"要":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"看":{"docs":{},"到":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"无":{"docs":{},"效":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}},"足":{"docs":{},"够":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"错":{"docs":{},"误":{"docs":{},"能":{"docs":{},"够":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}},"或":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"域":{"docs":{},"名":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"与":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"都":{"docs":{},"应":{"docs":{},"该":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},"打":{"docs":{},"包":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"符":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"构":{"docs":{},"建":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}},"。":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"服":{"docs":{},"务":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"只":{"docs":{},"能":{"docs":{},"填":{"docs":{},"写":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"访":{"docs":{},"问":{"docs":{},"这":{"docs":{},"个":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{},"打":{"docs":{},"开":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"因":{"docs":{},"此":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"启":{"docs":{},"动":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"性":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"路":{"docs":{},"径":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"则":{"docs":{},"根":{"docs":{},"据":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"一":{"docs":{},"段":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"存":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"限":{"docs":{},"制":{"docs":{},":":{"docs":{},"只":{"docs":{},"能":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"包":{"docs":{},"括":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},")":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}},"确":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"此":{"docs":{},"时":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},"在":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"每":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"服":{"docs":{},"务":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"份":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{},"在":{"docs":{},"一":{"docs":{},"起":{"docs":{},"。":{"docs":{},"具":{"docs":{},"体":{"docs":{},"内":{"docs":{},"容":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},",":{"docs":{},"互":{"docs":{},"相":{"docs":{},"之":{"docs":{},"间":{"docs":{},"不":{"docs":{},"干":{"docs":{},"扰":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}},"比":{"docs":{},"如":{"docs":{},"设":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"命":{"docs":{},"令":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"演":{"docs":{},"示":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"区":{"docs":{},"分":{"docs":{},"不":{"docs":{},"同":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":10.025}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"规":{"docs":{},"则":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"识":{"docs":{},"别":{"docs":{},"和":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"而":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"入":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"。":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"输":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"签":{"docs":{},"名":{"docs":{},"没":{"docs":{},"有":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"暴":{"docs":{},"露":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"检":{"docs":{},"查":{"docs":{},"服":{"docs":{},"务":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"常":{"docs":{},"。":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},"合":{"docs":{},"并":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"真":{"docs":{},"正":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"完":{"docs":{},"成":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"分":{"docs":{},"析":{"docs":{},"源":{"docs":{},"码":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"表":{"docs":{},"示":{"docs":{},"代":{"docs":{},"码":{"docs":{},"注":{"docs":{},"释":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},",":{"docs":{},"则":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"运":{"docs":{},"行":{"docs":{},"一":{"docs":{},"下":{"docs":{},"命":{"docs":{},"令":{"docs":{},"开":{"docs":{},"启":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"中":{"docs":{},"就":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"编":{"docs":{},"译":{"docs":{},"后":{"docs":{},"的":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"前":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"生":{"docs":{},"成":{"docs":{},"对":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"还":{"docs":{},"不":{"docs":{},"完":{"docs":{},"善":{"docs":{},",":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"对":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"编":{"docs":{},"译":{"docs":{},"并":{"docs":{},"打":{"docs":{},"包":{"docs":{},"成":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"运":{"docs":{},"行":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"得":{"docs":{},"到":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"写":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"范":{"docs":{},"例":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"查":{"docs":{},"看":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"访":{"docs":{},"问":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/error.html":{"ref":"concepts/error.html","tf":0.008968609865470852}}}},"语":{"docs":{},"言":{"docs":{},"版":{"docs":{},"本":{"docs":{},"(":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"到":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"。":{"docs":{},"为":{"docs":{},"空":{"docs":{},"时":{"docs":{},"不":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"替":{"docs":{},"换":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"为":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"替":{"docs":{},"换":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"正":{"docs":{},"确":{"docs":{},"设":{"docs":{},"置":{"docs":{},"版":{"docs":{},"本":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"程":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"声":{"docs":{},"明":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"本":{"docs":{},"地":{"docs":{},"没":{"docs":{},"有":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"镜":{"docs":{},"像":{"docs":{},",":{"docs":{},"或":{"docs":{},"者":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"镜":{"docs":{},"像":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"请":{"docs":{},"修":{"docs":{},"改":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"包":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"之":{"docs":{},"后":{"docs":{},"则":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},",":{"docs":{},"并":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.05714285714285714}},"字":{"docs":{},"段":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"替":{"docs":{},"换":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}},"符":{"docs":{},"串":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"空":{"docs":{},"格":{"docs":{},"后":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"时":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"名":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"请":{"docs":{},"确":{"docs":{},"保":{"docs":{},"这":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"是":{"docs":{},"有":{"docs":{},"意":{"docs":{},"义":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"影":{"docs":{},"响":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"构":{"docs":{},"建":{"docs":{},"容":{"docs":{},"器":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"工":{"docs":{},"具":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"例":{"docs":{},"子":{"docs":{},"中":{"docs":{},",":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"要":{"docs":{},"求":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"判":{"docs":{},"断":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.023809523809523808}}}},"只":{"docs":{},"针":{"docs":{},"对":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}},"插":{"docs":{},"件":{"docs":{},"暴":{"docs":{},"露":{"docs":{},"三":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},":":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"包":{"docs":{},"方":{"docs":{},"便":{"docs":{},"了":{"docs":{},"用":{"docs":{},"户":{"docs":{},"创":{"docs":{},"建":{"docs":{},"能":{"docs":{},"够":{"docs":{},"被":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}}}}}}}}}}}}}}}}},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"分":{"docs":{},"离":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"剩":{"docs":{},"余":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"径":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"对":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"常":{"docs":{},"用":{"docs":{},"特":{"docs":{},"例":{"docs":{},"的":{"docs":{},"优":{"docs":{},"化":{"docs":{},",":{"docs":{},"快":{"docs":{},"速":{"docs":{},"进":{"docs":{},"行":{"docs":{},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"添":{"docs":{},"加":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"都":{"docs":{},"是":{"docs":{},"以":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"就":{"docs":{},"表":{"docs":{},"示":{"docs":{},"文":{"docs":{},"档":{"docs":{},"生":{"docs":{},"成":{"docs":{},"成":{"docs":{},"功":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}},"是":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}},"够":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"优":{"docs":{},"势":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"都":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"其":{"docs":{},"他":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}}}}}}}}},"种":{"docs":{},"形":{"docs":{},"式":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"套":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},"进":{"docs":{},"行":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"装":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"正":{"docs":{},"确":{"docs":{},"层":{"docs":{},"级":{"docs":{},"的":{"docs":{},"调":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{},"的":{"docs":{},"。":{"docs":{},"首":{"docs":{},"先":{"docs":{},"看":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"链":{"docs":{},"式":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"决":{"docs":{},"定":{"docs":{},"请":{"docs":{},"求":{"docs":{},"是":{"docs":{},"否":{"docs":{},"继":{"docs":{},"续":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"提":{"docs":{},"供":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"检":{"docs":{},"查":{"docs":{},",":{"docs":{},"g":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}},"任":{"docs":{},"何":{"docs":{},"更":{"docs":{},"新":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"需":{"docs":{},"要":{"docs":{},"放":{"docs":{},"置":{"docs":{},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"管":{"docs":{},"理":{"docs":{},"工":{"docs":{},"具":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"两":{"docs":{},"个":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"的":{"docs":{},"标":{"docs":{},"准":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"他":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"(":{"docs":{},"除":{"docs":{},"非":{"docs":{},"业":{"docs":{},"务":{"docs":{},"有":{"docs":{},"要":{"docs":{},"求":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"包":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"退":{"docs":{},"出":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"上":{"docs":{},"面":{"docs":{},"这":{"docs":{},"些":{"docs":{},"规":{"docs":{},"则":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}}}}}}}}}}}},"了":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"中":{"docs":{},"修":{"docs":{},"改":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"那":{"docs":{},"么":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"如":{"docs":{},"果":{"docs":{},"存":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"项":{"docs":{},"目":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}}}}}}},"名":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"器":{"docs":{},"机":{"docs":{},"制":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":10.009803921568627}}}}},"基":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}},"镜":{"docs":{},"像":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"项":{"docs":{},"目":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}},"。":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}},"名":{"docs":{},"称":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"[":{"docs":{},":":{"docs":{},"模":{"docs":{},"块":{"docs":{},"名":{"docs":{},"]":{"docs":{},":":{"docs":{},"错":{"docs":{},"误":{"docs":{},"名":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}},"描":{"docs":{},"述":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"目":{"docs":{},"录":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":10.002358490566039}}}}}}}},"负":{"docs":{},"责":{"docs":{},"人":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}},"配":{"docs":{},"置":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"保":{"docs":{},"存":{"docs":{},"所":{"docs":{},"有":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"将":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}},"创":{"docs":{},"建":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}},"看":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"会":{"docs":{},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"部":{"docs":{},"有":{"docs":{},"没":{"docs":{},"有":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"时":{"docs":{},"添":{"docs":{},"加":{"docs":{"guides/project.html":{"ref":"guides/project.html","tf":0.0023584905660377358}}}}}}}}}}}}},"&":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"}":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"{":{"docs":{},"}":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"}":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"{":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.008403361344537815}}}}}}}}}}}}}}}},"&":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":3.333333333333333}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"{":{"docs":{},"}":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"(":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"*":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}},".":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}},"c":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"topics/definition.html":{"ref":"topics/definition.html","tf":0.007220216606498195},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.022508038585209004},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"t":{"docs":{},"x":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"i":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"m":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},"e":{"1":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},"docs":{}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"a":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"u":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"r":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"n":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.010362694300518135},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}}}}}},"o":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}},"r":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"b":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},":":{"docs":{},"=":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.016891891891891893},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/command.html":{"ref":"topics/command.html","tf":0.02100840336134454}}}},"[":{"5":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"docs":{},"]":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"}":{"docs":{},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"}":{"docs":{},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"f":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},",":{"docs":{},"则":{"docs":{},"直":{"docs":{},"接":{"docs":{},"将":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"如":{"docs":{},"果":{"docs":{},"是":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"其":{"docs":{},"他":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.004512635379061372},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"{":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"*":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"docs":{},"\"":{"docs":{},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"\"":{"docs":{},"`":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},"`":{"docs":{},"/":{"docs":{},"`":{"docs":{},"c":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},":":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"s":{"docs":{},"c":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}}}},"t":{"docs":{},"l":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"`":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"`":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/config.html":{"ref":"topics/config.html","tf":0.043209876543209874},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"为":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},".":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/rest.html":{"ref":"topics/rest.html","tf":0.007272727272727273}}},"y":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.005780346820809248},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}},"(":{"docs":{},")":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.03529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}},"k":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505}},"e":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},".":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497},"guides/client.html":{"ref":"guides/client.html","tf":0.012594458438287154},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.04054054054054054},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.018867924528301886},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.06735751295336788},"concepts/error.html":{"ref":"concepts/error.html","tf":0.013452914798206279},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776},"topics/log.html":{"ref":"topics/log.html","tf":0.011848341232227487},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.02888086642599278},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.05},"topics/validator.html":{"ref":"topics/validator.html","tf":0.00980392156862745},"topics/router.html":{"ref":"topics/router.html","tf":0.030716723549488054},"topics/service.html":{"ref":"topics/service.html","tf":0.03592814371257485},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.012861736334405145},"topics/config.html":{"ref":"topics/config.html","tf":0.009259259259259259},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.046822742474916385},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},"\"":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.01092896174863388},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233}},"`":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"s":{"docs":{},".":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"g":{"docs":{},"o":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.01529051987767584}}}}},":":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0457516339869281},"topics/service.html":{"ref":"topics/service.html","tf":0.010778443113772455},"topics/utils.html":{"ref":"topics/utils.html","tf":0.010033444816053512}},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.011148272017837236}},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}}}},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"让":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"除":{"docs":{},"了":{"docs":{},"设":{"docs":{},"置":{"docs":{},"当":{"docs":{},"前":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"r":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}}}},"l":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"l":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"w":{"docs":{},"w":{"docs":{},"w":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485}},"r":{"docs":{},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},".":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"a":{"docs":{},"y":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"s":{"docs":{},".":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"n":{"docs":{},"t":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.012578616352201259},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0023952095808383233},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"r":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.009478672985781991}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}},"f":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}},"l":{"docs":{},"n":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/service.html":{"ref":"topics/service.html","tf":0.003592814371257485},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"{":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.019267822736030827},"guides/client.html":{"ref":"guides/client.html","tf":0.042821158690176324},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.01509433962264151},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.01834862385321101},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.037815126050420166}},"\"":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"0":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.011320754716981131},"topics/definition.html":{"ref":"topics/definition.html","tf":0.005415162454873646}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"}":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.017341040462427744},"guides/client.html":{"ref":"guides/client.html","tf":0.04534005037783375},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.02027027027027027},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.009433962264150943},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/context.html":{"ref":"concepts/context.html","tf":0.01639344262295082},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.026905829596412557},"concepts/method.html":{"ref":"concepts/method.html","tf":0.013761467889908258},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.02336448598130841},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.03363914373088685},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.006928406466512702},"topics/definition.html":{"ref":"topics/definition.html","tf":0.009927797833935019},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.027303754266211604},"topics/service.html":{"ref":"topics/service.html","tf":0.013173652694610778},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.00964630225080386},"topics/config.html":{"ref":"topics/config.html","tf":0.006172839506172839},"topics/rest.html":{"ref":"topics/rest.html","tf":0.014545454545454545},"topics/utils.html":{"ref":"topics/utils.html","tf":0.013377926421404682},"topics/command.html":{"ref":"topics/command.html","tf":0.04201680672268908}},",":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.01348747591522158},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.01904761904761905},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}}}},"与":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"名":{"docs":{},"称":{"docs":{},"无":{"docs":{},"关":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"访":{"docs":{},"问":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"类":{"docs":{},"的":{"docs":{},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"任":{"docs":{},"何":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"以":{"docs":{},"下":{"docs":{},"几":{"docs":{},"件":{"docs":{},"事":{"docs":{},"情":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}},"上":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"外":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"十":{"docs":{},"分":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"设":{"docs":{},"置":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"那":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"取":{"docs":{},"得":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"中":{"docs":{},"确":{"docs":{},"定":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"并":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"使":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"始":{"docs":{},"终":{"docs":{},"建":{"docs":{},"议":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"放":{"docs":{},"在":{"docs":{},"后":{"docs":{},"面":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"这":{"docs":{},"样":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"部":{"docs":{},"分":{"docs":{},"在":{"docs":{},"创":{"docs":{},"建":{"docs":{},"时":{"docs":{},"是":{"docs":{},"不":{"docs":{},"确":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"等":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"部":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"呈":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"希":{"docs":{},"望":{"docs":{},"使":{"docs":{},"用":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"作":{"docs":{},"为":{"docs":{},"业":{"docs":{},"务":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"特":{"docs":{},"性":{"docs":{},"。":{"docs":{},"一":{"docs":{},"旦":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"加":{"docs":{},"载":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"即":{"docs":{},"使":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},"里":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"发":{"docs":{},"生":{"docs":{},"改":{"docs":{},"变":{"docs":{},",":{"docs":{},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},"仍":{"docs":{},"然":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"旧":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"加":{"docs":{},"载":{"docs":{},"时":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"用":{"docs":{},"于":{"docs":{},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"例":{"docs":{},"值":{"docs":{},"没":{"docs":{},"有":{"docs":{},"任":{"docs":{},"何":{"docs":{},"意":{"docs":{},"义":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{},"这":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"任":{"docs":{},"何":{"docs":{},"字":{"docs":{},"段":{"docs":{},"设":{"docs":{},"置":{"docs":{},"值":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"放":{"docs":{},"到":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},"(":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"之":{"docs":{},"前":{"docs":{},"完":{"docs":{},"成":{"docs":{},")":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"放":{"docs":{},"置":{"docs":{},"到":{"docs":{},"全":{"docs":{},"局":{"docs":{},"容":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"形":{"docs":{},"成":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}},"。":{"docs":{},"请":{"docs":{},"参":{"docs":{},"考":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"删":{"docs":{},"除":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{},",":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"既":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"来":{"docs":{},"源":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"关":{"docs":{},"心":{"docs":{},"如":{"docs":{},"何":{"docs":{},"将":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"写":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"里":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},"实":{"docs":{},"现":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},"通":{"docs":{},"过":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}},"构":{"docs":{},"建":{"docs":{},"带":{"docs":{},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"在":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"结":{"docs":{},"构":{"docs":{},"对":{"docs":{},"象":{"docs":{},"和":{"docs":{},"注":{"docs":{},"释":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"使":{"docs":{},"用":{"docs":{},"需":{"docs":{},"求":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"被":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}},"名":{"docs":{},"称":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"因":{"docs":{},"为":{"docs":{},"只":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},",":{"docs":{},"此":{"docs":{},"处":{"docs":{},"为":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{},"始":{"docs":{},"终":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"。":{"docs":{},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"错":{"docs":{},"误":{"docs":{},"仅":{"docs":{},"在":{"docs":{},"内":{"docs":{},"部":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"进":{"docs":{},"行":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"简":{"docs":{},"化":{"docs":{},"错":{"docs":{},"误":{"docs":{},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"二":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"异":{"docs":{},"步":{"docs":{},"修":{"docs":{},"改":{"docs":{},"资":{"docs":{},"源":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"容":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"删":{"docs":{},"除":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"发":{"docs":{},"出":{"docs":{},"后":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"应":{"docs":{},"当":{"docs":{},"只":{"docs":{},"是":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"加":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"关":{"docs":{},"联":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"或":{"docs":{},"者":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"供":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"后":{"docs":{},"续":{"docs":{},"查":{"docs":{},"询":{"docs":{},"请":{"docs":{},"求":{"docs":{},"执":{"docs":{},"行":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"新":{"docs":{},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"就":{"docs":{},"要":{"docs":{},"求":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"必":{"docs":{},"须":{"docs":{},"放":{"docs":{},"在":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"在":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"中":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"解":{"docs":{},"决":{"docs":{},"这":{"docs":{},"个":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"成":{"docs":{},"功":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"接":{"docs":{},"下":{"docs":{},"来":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"增":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"以":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}},"口":{"docs":{},"。":{"docs":{},"其":{"docs":{},"中":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}},"即":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"如":{"docs":{},"果":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"以":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"是":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},",":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"类":{"docs":{},"特":{"docs":{},"征":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}},"则":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"生":{"docs":{},"成":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"包":{"docs":{},"装":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"作":{"docs":{},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"能":{"docs":{},"携":{"docs":{},"带":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"关":{"docs":{},"于":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"现":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"跟":{"docs":{},"踪":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},":":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"显":{"docs":{},"式":{"docs":{},"定":{"docs":{},"义":{"docs":{},"在":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.004618937644341801},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"收":{"docs":{},"配":{"docs":{},"置":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"一":{"docs":{},"些":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"方":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"下":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}},"据":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"方":{"docs":{},"法":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"比":{"docs":{},"如":{"docs":{},"某":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"包":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":10.004587155963304}},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"就":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"都":{"docs":{},"是":{"docs":{},"语":{"docs":{},"义":{"docs":{},"层":{"docs":{},"面":{"docs":{},"的":{"docs":{},",":{"docs":{},"为":{"docs":{},"的":{"docs":{},"是":{"docs":{},"提":{"docs":{},"高":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"得":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}},"一":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"二":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}},"用":{"docs":{},"于":{"docs":{},"在":{"docs":{},"对":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}},"直":{"docs":{},"接":{"docs":{},"创":{"docs":{},"建":{"docs":{},"出":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}},"安":{"docs":{},"装":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}},"验":{"docs":{},"证":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"否":{"docs":{},"正":{"docs":{},"确":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"种":{"docs":{},"行":{"docs":{},"为":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"就":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"给":{"docs":{},"插":{"docs":{},"件":{"docs":{},"允":{"docs":{},"许":{"docs":{},"插":{"docs":{},"件":{"docs":{},"设":{"docs":{},"置":{"docs":{},"自":{"docs":{},"身":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"装":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"这":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},"正":{"docs":{},"执":{"docs":{},"行":{"docs":{},"命":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"无":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"个":{"docs":{},"资":{"docs":{},"源":{"docs":{},"(":{"docs":{},"幂":{"docs":{},"等":{"docs":{},")":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}},"有":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.011560693641618497}},"时":{"docs":{},"候":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"不":{"docs":{},"能":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}},"关":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"如":{"docs":{},"果":{"docs":{},"多":{"docs":{},"个":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"可":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"上":{"docs":{},"面":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"资":{"docs":{},"源":{"docs":{},"唯":{"docs":{},"一":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},"命":{"docs":{},"令":{"docs":{},"中":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"添":{"docs":{},"加":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.029411764705882353}},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"匹":{"docs":{},"配":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}},"到":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"类":{"docs":{},"型":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"名":{"docs":{},"称":{"docs":{},"可":{"docs":{},"以":{"docs":{},"为":{"docs":{},"空":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"参":{"docs":{},"数":{"docs":{},"在":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"一":{"docs":{},"般":{"docs":{},"不":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"通":{"docs":{},"常":{"docs":{},"会":{"docs":{},"被":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}}}}},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"也":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"变":{"docs":{},"成":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"类":{"docs":{},"型":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"了":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"组":{"docs":{},"合":{"docs":{},"成":{"docs":{},"一":{"docs":{},"个":{"docs":{},":":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}},"包":{"docs":{},"含":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}},"具":{"docs":{},"有":{"docs":{},"如":{"docs":{},"下":{"docs":{},"含":{"docs":{},"义":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"给":{"docs":{},"项":{"docs":{},"目":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"条":{"docs":{},"消":{"docs":{},"息":{"docs":{},"的":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0038535645472061657}}}}}}},"资":{"docs":{},"源":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}},"列":{"docs":{},"表":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"某":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"之":{"docs":{},"后":{"docs":{},"再":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"里":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}},"的":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":10.023809523809524}},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}},"追":{"docs":{},"踪":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":10.016129032258064}},"基":{"docs":{},"于":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}},"返":{"docs":{},"回":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}},"值":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"任":{"docs":{},"意":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"自":{"docs":{},"动":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"的":{"docs":{},"是":{"docs":{},"资":{"docs":{},"源":{"docs":{},"数":{"docs":{},"组":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}}}}}}},"回":{"docs":{},"去":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"是":{"docs":{},"否":{"docs":{},"健":{"docs":{},"康":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"出":{"docs":{},"去":{"docs":{},",":{"docs":{},"供":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"都":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"遵":{"docs":{},"守":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"描":{"docs":{},"述":{"docs":{},"这":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}},"里":{"docs":{},"取":{"docs":{},"值":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"。":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}},"的":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"文":{"docs":{},"本":{"docs":{},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}},"链":{"docs":{},"接":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}},"错":{"docs":{},"误":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":10.004484304932735}}}}},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"在":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}}}}}}},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{"guides/api.html":{"ref":"guides/api.html","tf":0.0019267822736030828}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"生":{"docs":{},"成":{"docs":{},"如":{"docs":{},"下":{"docs":{},"结":{"docs":{},"构":{"docs":{},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}}},"插":{"docs":{},"件":{"docs":{},"会":{"docs":{},"添":{"docs":{},"加":{"docs":{},"四":{"docs":{},"个":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}},"了":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"路":{"docs":{},"径":{"docs":{},"为":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.03225806451612903}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":10.030188679245283},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.01444043321299639},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}}}}},"o":{"docs":{},"r":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}},"s":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774}}},":":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":10}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":10}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"'":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}},",":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"(":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.025},"topics/validator.html":{"ref":"topics/validator.html","tf":0.006535947712418301}}}}}},"。":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.028985507246376812},"topics/config.html":{"ref":"topics/config.html","tf":0.020061728395061727},"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341},"topics/command.html":{"ref":"topics/command.html","tf":0.01680672268907563}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"s":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"实":{"docs":{},"现":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"m":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},"s":{"docs":{},".":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}},",":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"u":{"docs":{},"t":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"(":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.002707581227436823}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.016981132075471698},"concepts/source.html":{"ref":"concepts/source.html","tf":0.023529411764705882},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/definition.html":{"ref":"topics/definition.html","tf":0.00631768953068592},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.004790419161676647},"topics/utils.html":{"ref":"topics/utils.html","tf":0.005574136008918618}},".":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}},"o":{"docs":{},"f":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"(":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},",":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"v":{"2":{"docs":{},",":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0037735849056603774},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0018050541516245488}}}},"docs":{}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"n":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.025157232704402517},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0030864197530864196}},"e":{"docs":{},".":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}},",":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},".":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"k":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},",":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.043478260869565216}}}}}},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}},".":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.0071090047393364926}}}}},"docs":{}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}},"|":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.046875},"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/service.html":{"ref":"topics/service.html","tf":0.015568862275449102}}},"公":{"docs":{},"开":{"docs":{},"给":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"给":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}},"共":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"构":{"docs":{},"建":{"docs":{},",":{"docs":{},"而":{"docs":{},"每":{"docs":{},"个":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"查":{"docs":{},"看":{"docs":{},"文":{"docs":{},"档":{"docs":{},"。":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"得":{"docs":{},"到":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}},"并":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}},"成":{"docs":{},"为":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"且":{"docs":{},"会":{"docs":{},"检":{"docs":{},"查":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"一":{"docs":{},"个":{"docs":{},"命":{"docs":{},"令":{"docs":{},"用":{"docs":{},"于":{"docs":{},"从":{"docs":{},"项":{"docs":{},"目":{"docs":{},"中":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}},"新":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{},"之":{"docs":{},"前":{"docs":{},"让":{"docs":{},"用":{"docs":{},"户":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"而":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"设":{"docs":{},"置":{"docs":{},"生":{"docs":{},"成":{"docs":{},"服":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},",":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"一":{"docs":{},"些":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}},"交":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}},"生":{"docs":{},"成":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":3.348958333333333},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}},"代":{"docs":{},"码":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":10.002518891687657},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}},"的":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"是":{"docs":{},"版":{"docs":{},"本":{"docs":{},"化":{"docs":{},"的":{"docs":{},",":{"docs":{},"版":{"docs":{},"本":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"确":{"docs":{},"保":{"docs":{},"两":{"docs":{},"者":{"docs":{},"的":{"docs":{},"一":{"docs":{},"致":{"docs":{},"性":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"新":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"这":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"进":{"docs":{},"行":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"。":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"匿":{"docs":{},"名":{"docs":{},"函":{"docs":{},"数":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},",":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"项":{"docs":{},"目":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}}}}}},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}},"器":{"docs":{},"这":{"docs":{},"个":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"特":{"docs":{},"定":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"获":{"docs":{},"取":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"而":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"。":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"将":{"docs":{},"参":{"docs":{},"数":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"读":{"docs":{},"基":{"docs":{},"本":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"函":{"docs":{},"数":{"docs":{},"体":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"则":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"效":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"对":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}},"端":{"docs":{},"口":{"docs":{},"提":{"docs":{},"供":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"防":{"docs":{},"止":{"docs":{},"端":{"docs":{},"口":{"docs":{},"冲":{"docs":{},"突":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.05405405405405406},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.05555555555555555}},"监":{"docs":{},"听":{"docs":{},"的":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}},"端":{"docs":{},"口":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"为":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}},"接":{"docs":{},"口":{"docs":{},"实":{"docs":{},"例":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}},"请":{"docs":{},"求":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}},"路":{"docs":{},"径":{"docs":{},"前":{"docs":{},"缀":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"值":{"docs":{},"为":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"名":{"docs":{},"称":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}},"版":{"docs":{},"本":{"docs":{},"号":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}},"该":{"docs":{},"命":{"docs":{},"令":{"docs":{},"不":{"docs":{},"会":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"会":{"docs":{},"输":{"docs":{},"出":{"docs":{},"如":{"docs":{},"下":{"docs":{},"日":{"docs":{},"志":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/doc.html":{"ref":"guides/doc.html","tf":0.015625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"会":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"!":{"docs":{},"=":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.012232415902140673},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682},"topics/log.html":{"ref":"topics/log.html","tf":0.004739336492890996},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},"*":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.007556675062972292},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.009174311926605505},"topics/method.html":{"ref":"topics/method.html","tf":0.018867924528301886},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}},")":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.0196078431372549},"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.009345794392523364},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.03536977491961415},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}},",":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.005037783375314861}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.010075566750629723},"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0061162079510703364}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}},")":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.03272727272727273}}}}}}}}}},"v":{"1":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.007547169811320755},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0036101083032490976}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},")":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}},"/":{"docs":{},"*":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.014018691588785047}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},".":{"docs":{},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"y":{"docs":{},"z":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.006688963210702341}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"提":{"docs":{},"取":{"docs":{},"出":{"docs":{},"来":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"到":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"整":{"docs":{},"合":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":10.003058103975535}},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}},"的":{"docs":{},"使":{"docs":{},"用":{"docs":{},"非":{"docs":{},"常":{"docs":{},"简":{"docs":{},"单":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"语":{"docs":{},"言":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"尚":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},")":{"docs":{},"。":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}},"指":{"docs":{},"定":{"docs":{},"其":{"docs":{},"他":{"docs":{},"输":{"docs":{},"出":{"docs":{},"目":{"docs":{},"录":{"docs":{},"(":{"docs":{},"目":{"docs":{},"前":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{},"生":{"docs":{},"成":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"良":{"docs":{},"好":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"在":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"成":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"以":{"docs":{},"供":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},"日":{"docs":{},"志":{"docs":{},"如":{"docs":{},"下":{"docs":{},"(":{"docs":{},"项":{"docs":{},"目":{"docs":{},"路":{"docs":{},"径":{"docs":{},"和":{"docs":{},"日":{"docs":{},"志":{"docs":{},"时":{"docs":{},"间":{"docs":{},"会":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},")":{"docs":{},":":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}}}}}}}}}}}}}}}}}}}}}}},"限":{"docs":{},"制":{"docs":{"guides/client.html":{"ref":"guides/client.html","tf":0.0025188916876574307}}}},"x":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}},"m":{"docs":{},"l":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}},"响":{"docs":{},"应":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"返":{"docs":{},"回":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"取":{"docs":{},"得":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"执":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"。":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"会":{"docs":{},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"框":{"docs":{},"架":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},"在":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"节":{"docs":{},"点":{"docs":{},"中":{"docs":{},"从":{"docs":{},"根":{"docs":{},"节":{"docs":{},"点":{"docs":{},"开":{"docs":{},"始":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},",":{"docs":{},"直":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"完":{"docs":{},"了":{"docs":{},"整":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"这":{"docs":{},"个":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},"就":{"docs":{},"会":{"docs":{},"作":{"docs":{},"为":{"docs":{},"这":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"链":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"这":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"还":{"docs":{},"有":{"docs":{},"后":{"docs":{},"代":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"继":{"docs":{},"续":{"docs":{},"进":{"docs":{},"行":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"每":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"都":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"某":{"docs":{},"些":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"私":{"docs":{},"有":{"docs":{},"函":{"docs":{},"数":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"命":{"docs":{},"令":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}}}}}}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"插":{"docs":{},"件":{"docs":{},"应":{"docs":{},"该":{"docs":{},"通":{"docs":{},"过":{"docs":{},"插":{"docs":{},"件":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}},"是":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"则":{"docs":{},"负":{"docs":{},"责":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}}},"和":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"一":{"docs":{},"一":{"docs":{},"对":{"docs":{},"应":{"docs":{},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"合":{"docs":{},"法":{"docs":{},"性":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"让":{"docs":{},"数":{"docs":{},"据":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"转":{"docs":{},"换":{"docs":{},"等":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"更":{"docs":{},"加":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"化":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"被":{"docs":{},"继":{"docs":{},"续":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"丢":{"docs":{},"弃":{"docs":{},"。":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"是":{"docs":{},"否":{"docs":{},"是":{"docs":{},"由":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"针":{"docs":{},"对":{"docs":{},"单":{"docs":{},"个":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"参":{"docs":{},"数":{"docs":{},"和":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"值":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"。":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"并":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}},"包":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498},"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629},"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098},"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"注":{"docs":{},"册":{"docs":{},"用":{"docs":{},"户":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"包":{"docs":{},"装":{"docs":{},"成":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}},"一":{"docs":{},"组":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"个":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}},"系":{"docs":{},"列":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{},"用":{"docs":{},"于":{"docs":{},"校":{"docs":{},"验":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}},"方":{"docs":{},"法":{"docs":{},"注":{"docs":{},"册":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}},"进":{"docs":{},"行":{"docs":{},"注":{"docs":{},"册":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.002229654403567447}}}}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786},"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.005660377358490566},"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904},"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525},"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525},"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694},"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"实":{"docs":{},"现":{"docs":{},"基":{"docs":{},"于":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"依":{"docs":{},"赖":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"行":{"docs":{},"实":{"docs":{},"现":{"docs":{},"错":{"docs":{},"误":{"docs":{},"包":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"产":{"docs":{},"出":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"符":{"docs":{},"合":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"是":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"插":{"docs":{},"件":{"docs":{},"能":{"docs":{},"力":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"创":{"docs":{},"建":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},":":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"的":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}}}},"括":{"docs":{},":":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"。":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"每":{"docs":{},"个":{"docs":{},"占":{"docs":{},"位":{"docs":{},"符":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"和":{"docs":{},"值":{"docs":{},",":{"docs":{},"保":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"实":{"docs":{},"例":{"docs":{},"容":{"docs":{},"器":{"docs":{},",":{"docs":{},"每":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"对":{"docs":{},"应":{"docs":{},"一":{"docs":{},"个":{"docs":{},"实":{"docs":{},"例":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"分":{"docs":{},"离":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"方":{"docs":{},"法":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"格":{"docs":{},"式":{"docs":{},"化":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"和":{"docs":{},"错":{"docs":{},"误":{"docs":{},"判":{"docs":{},"断":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0033444816053511705}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"在":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"基":{"docs":{},"础":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{},"读":{"docs":{},"取":{"docs":{},"项":{"docs":{},"目":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}},"公":{"docs":{},"共":{"docs":{},"工":{"docs":{},"具":{"docs":{},"给":{"docs":{},"其":{"docs":{},"他":{"docs":{},"生":{"docs":{},"成":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"指":{"docs":{},"标":{"docs":{},"。":{"docs":{},"采":{"docs":{},"集":{"docs":{},"端":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},":":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}},"包":{"docs":{},"含":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"多":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"用":{"docs":{},"于":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"了":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.015625},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}},"基":{"docs":{},"于":{"docs":{},"前":{"docs":{},"缀":{"docs":{},"树":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"和":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"三":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"际":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}},"中":{"docs":{},"存":{"docs":{},"在":{"docs":{},"三":{"docs":{},"个":{"docs":{},"概":{"docs":{},"念":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"是":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"看":{"docs":{},"到":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"如":{"docs":{},"下":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}},"对":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}},"的":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"之":{"docs":{},"所":{"docs":{},"以":{"docs":{},"不":{"docs":{},"复":{"docs":{},"用":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"类":{"docs":{},"型":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{},"稍":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"的":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"包":{"docs":{},"含":{"docs":{},"对":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"进":{"docs":{},"行":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"路":{"docs":{},"由":{"docs":{},"构":{"docs":{},"建":{"docs":{},"和":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}},"依":{"docs":{},"赖":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}},"和":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"其":{"docs":{},"他":{"docs":{},"第":{"docs":{},"三":{"docs":{},"方":{"docs":{},"的":{"docs":{},"包":{"docs":{},",":{"docs":{},"实":{"docs":{},"际":{"docs":{},"上":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"借":{"docs":{},"助":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}},"会":{"docs":{},"从":{"docs":{},"以":{"docs":{},"下":{"docs":{},"文":{"docs":{},"件":{"docs":{},"列":{"docs":{},"表":{"docs":{},"中":{"docs":{},"读":{"docs":{},"取":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"利":{"docs":{},"用":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"包":{"docs":{},"都":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"生":{"docs":{},"成":{"docs":{},"文":{"docs":{},"档":{"docs":{},"和":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"用":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}},"则":{"docs":{},"是":{"docs":{},"利":{"docs":{},"用":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"简":{"docs":{},"单":{"docs":{},"很":{"docs":{},"多":{"docs":{},"了":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"包":{"docs":{},"里":{"docs":{},"包":{"docs":{},"含":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"对":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"去":{"docs":{},"读":{"docs":{},"取":{"docs":{},"数":{"docs":{},"据":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"路":{"docs":{},"径":{"docs":{},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"从":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"标":{"docs":{},"记":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.013513513513513514}}}}},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"对":{"docs":{},"应":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617},"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}}},",":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"快":{"docs":{},"速":{"docs":{},"构":{"docs":{},"建":{"docs":{},"名":{"docs":{},"为":{"docs":{"topics/converter.html":{"ref":"topics/converter.html","tf":0.0125}}}}}}}}}}}}},"的":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.012605042016806723}}}},"际":{"docs":{},"上":{"docs":{},"要":{"docs":{},"填":{"docs":{},"写":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"就":{"docs":{},"是":{"docs":{},"只":{"docs":{},"与":{"docs":{},"自":{"docs":{},"身":{"docs":{},"业":{"docs":{},"务":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}},"一":{"docs":{},"个":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"例":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}},"将":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505},"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"数":{"docs":{},"据":{"docs":{},"写":{"docs":{},"入":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"体":{"docs":{},"中":{"docs":{},"。":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"它":{"docs":{},"的":{"docs":{},"与":{"docs":{},"请":{"docs":{},"求":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"字":{"docs":{},"节":{"docs":{},"写":{"docs":{},"入":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"。":{"docs":{},"在":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"生":{"docs":{},"成":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}},"注":{"docs":{},"册":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}},"了":{"docs":{},"插":{"docs":{},"件":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"在":{"docs":{},"服":{"docs":{},"务":{"docs":{},"启":{"docs":{},"动":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"所":{"docs":{},"有":{"docs":{},"插":{"docs":{},"件":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}},"只":{"docs":{},"有":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"找":{"docs":{},"到":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"才":{"docs":{},"算":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}},":":{"docs":{},"这":{"docs":{},"个":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"包":{"docs":{},"里":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"用":{"docs":{},"户":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"以":{"docs":{},"上":{"docs":{},"每":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},"都":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"相":{"docs":{},"关":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"注":{"docs":{},"册":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}},"空":{"docs":{},"的":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}},"定":{"docs":{},"义":{"docs":{},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}},"身":{"docs":{},"和":{"docs":{},"标":{"docs":{},"准":{"docs":{},"库":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"了":{"docs":{},"请":{"docs":{},"求":{"docs":{},"和":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"常":{"docs":{},"对":{"docs":{},"应":{"docs":{},"于":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"快":{"docs":{},"速":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"些":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.0033783783783783786}}}}}}}}}}}},"有":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}},"过":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/cp.html":{"ref":"concepts/cp.html","tf":0.006756756756756757}}}}}}},"使":{"docs":{},"用":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}},"转":{"docs":{},"换":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}},"为":{"docs":{},"路":{"docs":{},"由":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"以":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"验":{"docs":{},"证":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"在":{"docs":{},"某":{"docs":{},"些":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"参":{"docs":{},"数":{"docs":{},"进":{"docs":{},"行":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"和":{"docs":{},"具":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"区":{"docs":{},"别":{"docs":{},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"明":{"docs":{},"确":{"docs":{},"的":{"docs":{},"指":{"docs":{},"定":{"docs":{},"接":{"docs":{},"口":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}},"常":{"docs":{},"规":{"docs":{},"的":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}},"验":{"docs":{},"证":{"docs":{},"器":{"docs":{},"函":{"docs":{},"数":{"docs":{},"必":{"docs":{},"须":{"docs":{},"符":{"docs":{},"合":{"docs":{},"签":{"docs":{},"名":{"docs":{"concepts/operator.html":{"ref":"concepts/operator.html","tf":0.0018867924528301887}}}}}}}}}}}}},"尾":{"docs":{},"部":{"docs":{},"是":{"docs":{},"不":{"docs":{},"是":{"docs":{},"存":{"docs":{},"在":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"收":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"立":{"docs":{},"刻":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"并":{"docs":{},"根":{"docs":{},"据":{"docs":{"concepts/filter.html":{"ref":"concepts/filter.html","tf":0.011904761904761904}}}}}}}}}}}}}}}}}}}}}}}}},"允":{"docs":{},"许":{"docs":{},"在":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}},"用":{"docs":{},"于":{"docs":{},"单":{"docs":{},"独":{"docs":{},"配":{"docs":{},"置":{"docs":{},"每":{"docs":{},"一":{"docs":{},"项":{"docs":{},"信":{"docs":{},"息":{"docs":{},":":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}},"来":{"docs":{},"自":{"docs":{},"于":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"本":{"docs":{},"身":{"docs":{},"。":{"docs":{"concepts/prefab.html":{"ref":"concepts/prefab.html","tf":0.009523809523809525}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"确":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"数":{"docs":{},"字":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"一":{"docs":{},"个":{"docs":{},"能":{"docs":{},"够":{"docs":{},"处":{"docs":{},"理":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"路":{"docs":{},"由":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"启":{"docs":{},"用":{"docs":{},"插":{"docs":{},"件":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"将":{"docs":{},"插":{"docs":{},"件":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"表":{"docs":{},"达":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},":":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}},"设":{"docs":{},"置":{"docs":{},"用":{"docs":{},"于":{"docs":{},"接":{"docs":{},"收":{"docs":{},"响":{"docs":{},"应":{"docs":{},"的":{"docs":{},"值":{"docs":{},"(":{"docs":{},"都":{"docs":{},"是":{"docs":{},"指":{"docs":{},"针":{"docs":{},")":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"相":{"docs":{},"关":{"docs":{},"值":{"docs":{},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}}}},"下":{"docs":{},"查":{"docs":{},"看":{"docs":{},"启":{"docs":{},"用":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}}}}}},"面":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"例":{"docs":{},"子":{"docs":{},"来":{"docs":{},"说":{"docs":{},"明":{"docs":{},"这":{"docs":{},"几":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}},"加":{"docs":{},"上":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}},"空":{"docs":{},"的":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.01904761904761905}}}},"一":{"docs":{},"些":{"docs":{},"附":{"docs":{},"加":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"码":{"docs":{},"等":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{"concepts/modifier.html":{"ref":"concepts/modifier.html","tf":0.009523809523809525}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}},">":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.024691358024691357},"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426},"topics/router.html":{"ref":"topics/router.html","tf":0.020477815699658702},"topics/config.html":{"ref":"topics/config.html","tf":0.004629629629629629}}},"且":{"docs":{},"成":{"docs":{},"功":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"按":{"docs":{},"照":{"docs":{"concepts/middleware.html":{"ref":"concepts/middleware.html","tf":0.012345679012345678}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"递":{"docs":{},"给":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{},"链":{"docs":{},"继":{"docs":{},"续":{"docs":{},"传":{"docs":{},"递":{"docs":{},"。":{"docs":{},"最":{"docs":{},"终":{"docs":{},"经":{"docs":{},"由":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"去":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"后":{"docs":{},"续":{"docs":{},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"执":{"docs":{},"行":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"才":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"而":{"docs":{},"最":{"docs":{},"后":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"调":{"docs":{},"用":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/context.html":{"ref":"concepts/context.html","tf":0.00546448087431694}}}}}}},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"定":{"docs":{},"义":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}},"类":{"docs":{},"型":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}},"不":{"docs":{},"能":{"docs":{},"满":{"docs":{},"足":{"docs":{},"实":{"docs":{},"际":{"docs":{},"的":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"求":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941},"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}},"负":{"docs":{},"责":{"docs":{},"一":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"验":{"docs":{},"证":{"docs":{},"和":{"docs":{},"类":{"docs":{},"型":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/source.html":{"ref":"concepts/source.html","tf":0.011764705882352941}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"结":{"docs":{},"果":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"执":{"docs":{},"行":{"docs":{},"之":{"docs":{},"后":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{"concepts/destination.html":{"ref":"concepts/destination.html","tf":0.0051813471502590676}}}}}}}}}}}}}}},"介":{"docs":{},"绍":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"国":{"docs":{},"际":{"docs":{},"化":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}},"我":{"docs":{},"们":{"docs":{},"建":{"docs":{},"议":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"大":{"docs":{},"致":{"docs":{},"判":{"docs":{},"断":{"docs":{},"一":{"docs":{},"个":{"docs":{},"错":{"docs":{},"误":{"docs":{},"的":{"docs":{},"行":{"docs":{},"为":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}},"并":{"docs":{},"不":{"docs":{},"足":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"业":{"docs":{},"务":{"docs":{},"中":{"docs":{},"繁":{"docs":{},"复":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}},"视":{"docs":{},"为":{"docs":{},"错":{"docs":{},"误":{"docs":{},"大":{"docs":{},"类":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},",":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"基":{"docs":{},"础":{"docs":{},"的":{"docs":{},":":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"种":{"docs":{},"方":{"docs":{},"法":{"docs":{},"带":{"docs":{},"有":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}},"支":{"docs":{},"持":{"docs":{},"使":{"docs":{},"用":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"资":{"docs":{},"源":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"或":{"docs":{},"者":{"docs":{},"找":{"docs":{},"不":{"docs":{},"到":{"docs":{},")":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"在":{"docs":{},"大":{"docs":{},"类":{"docs":{},"下":{"docs":{},"定":{"docs":{},"义":{"docs":{},"业":{"docs":{},"务":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{"concepts/error.html":{"ref":"concepts/error.html","tf":0.004484304932735426}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"中":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525},"topics/start.html":{"ref":"topics/start.html","tf":0.0078125},"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744},"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}},"他":{"docs":{},"与":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}},"具":{"docs":{},"体":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"例":{"docs":{},"类":{"docs":{},"型":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"concepts/method.html":{"ref":"concepts/method.html","tf":0.0045871559633027525}}}}}}}},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}},"证":{"docs":{},"书":{"docs":{},"和":{"docs":{},"密":{"docs":{},"钥":{"docs":{},"。":{"docs":{"concepts/configurer.html":{"ref":"concepts/configurer.html","tf":0.00980392156862745}}}}}}}},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"这":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"通":{"docs":{},"过":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":0.004672897196261682}}},"的":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}},"机":{"docs":{},"制":{"docs":{"concepts/plugin.html":{"ref":"concepts/plugin.html","tf":10.004672897196262}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},"接":{"docs":{},"口":{"docs":{},":":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"服":{"docs":{},"务":{"docs":{},"项":{"docs":{},"目":{"docs":{},"。":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"整":{"docs":{},"合":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"区":{"docs":{},"别":{"docs":{},":":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}}},"统":{"docs":{},"一":{"docs":{},"网":{"docs":{},"关":{"docs":{},"访":{"docs":{},"问":{"docs":{"concepts/clients.html":{"ref":"concepts/clients.html","tf":0.0030581039755351682}}}}}}}},"暴":{"docs":{},"露":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}},"模":{"docs":{},"式":{"docs":{},"后":{"docs":{},",":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"日":{"docs":{},"志":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":10.014492753623188}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"伪":{"docs":{},"插":{"docs":{},"件":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"本":{"docs":{},"身":{"docs":{},"没":{"docs":{},"有":{"docs":{},"按":{"docs":{},"照":{"docs":{"plugins/logger.html":{"ref":"plugins/logger.html","tf":0.014492753623188406}}}}}}}}}}}}}}}}}}}}}}}},"列":{"docs":{},"包":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"包":{"docs":{},"含":{"docs":{},":":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"上":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}},"的":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"打":{"docs":{},"印":{"docs":{},"所":{"docs":{},"有":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"成":{"docs":{},"功":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"日":{"docs":{},"志":{"docs":{},"。":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}}}}}}}}}}},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"间":{"docs":{},"件":{"docs":{},"用":{"docs":{},"于":{"docs":{},"提":{"docs":{},"取":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/reqlog.html":{"ref":"plugins/reqlog.html","tf":0.023809523809523808},"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703},"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516},"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655},"plugins/version.html":{"ref":"plugins/version.html","tf":0.025},"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"监":{"docs":{},"控":{"docs":{},"指":{"docs":{},"标":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":10.027027027027026}},"基":{"docs":{},"于":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}}},"采":{"docs":{},"集":{"docs":{},"指":{"docs":{},"标":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"plugins/metrics.html":{"ref":"plugins/metrics.html","tf":0.02702702702702703}}}}}}}}},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"plugins/tracing.html":{"ref":"plugins/tracing.html","tf":0.016129032258064516}}},"的":{"docs":{},"提":{"docs":{},"取":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"前":{"docs":{},"缀":{"docs":{},"路":{"docs":{},"径":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}},"性":{"docs":{},"能":{"docs":{},"分":{"docs":{},"析":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":10.03448275862069}},"添":{"docs":{},"加":{"docs":{},"与":{"docs":{"plugins/profiling.html":{"ref":"plugins/profiling.html","tf":0.034482758620689655}}}}}}}}}}},"值":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}},"。":{"docs":{},"一":{"docs":{},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{"plugins/version.html":{"ref":"plugins/version.html","tf":0.025}}}}}}}}}}}}}}}}},"健":{"docs":{},"康":{"docs":{},"检":{"docs":{},"查":{"docs":{},"插":{"docs":{},"件":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":10.027777777777779}},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}}}}}}}},"应":{"docs":{},"该":{"docs":{},"返":{"docs":{},"回":{"docs":{"plugins/healthcheck.html":{"ref":"plugins/healthcheck.html","tf":0.027777777777777776}}}}}},"准":{"docs":{},"备":{"docs":{},"工":{"docs":{},"作":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":10.0078125}}}}}},"另":{"docs":{},"外":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}},"大":{"docs":{},"版":{"docs":{},"本":{"docs":{},"的":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"性":{"docs":{},"。":{"docs":{},"即":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"部":{"docs":{},"分":{"docs":{},"字":{"docs":{},"段":{"docs":{},"与":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}},"工":{"docs":{},"作":{"docs":{},"流":{"docs":{},"程":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"帮":{"docs":{},"助":{"docs":{},"用":{"docs":{},"户":{"docs":{},"把":{"docs":{},"实":{"docs":{},"例":{"docs":{},"方":{"docs":{},"法":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"工":{"docs":{},"具":{"docs":{},"介":{"docs":{},"绍":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"持":{"docs":{},"对":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"以":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/start.html":{"ref":"topics/start.html","tf":0.0078125}}}}}}}}}}}},"变":{"docs":{},"更":{"docs":{},"。":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}},"标":{"docs":{},"准":{"docs":{},"接":{"docs":{},"口":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/log.html":{"ref":"topics/log.html","tf":0.002369668246445498}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"是":{"docs":{},"以":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}},"识":{"docs":{},"别":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"业":{"docs":{},"务":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"中":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"引":{"docs":{},"入":{"docs":{},"对":{"docs":{"topics/errors.html":{"ref":"topics/errors.html","tf":0.0023094688221709007}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"别":{"docs":{},"对":{"docs":{},"应":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}},"同":{"docs":{},"等":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}}}},"继":{"docs":{},"承":{"docs":{},"的":{"docs":{},"字":{"docs":{},"段":{"docs":{"topics/definition.html":{"ref":"topics/definition.html","tf":0.0009025270758122744}}}}}}},"容":{"docs":{},"器":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"实":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{"topics/method.html":{"ref":"topics/method.html","tf":0.006289308176100629}}}}}}}}},"基":{"docs":{},"础":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"类":{"docs":{},"型":{"docs":{},"和":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{},"目":{"docs":{},"前":{"docs":{},"验":{"docs":{},"证":{"docs":{},"方":{"docs":{},"法":{"docs":{},"基":{"docs":{},"于":{"docs":{"topics/validator.html":{"ref":"topics/validator.html","tf":0.0032679738562091504}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"这":{"docs":{},"些":{"docs":{},"转":{"docs":{},"换":{"docs":{},"器":{"docs":{},"一":{"docs":{},"般":{"docs":{},"是":{"docs":{},"用":{"docs":{},"于":{"docs":{},"将":{"docs":{},"请":{"docs":{},"求":{"docs":{},"里":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"topics/command.html":{"ref":"topics/command.html","tf":0.004201680672268907}}}}}}}}},"z":{"docs":{},"]":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"}":{"docs":{},"/":{"docs":{},"{":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{},"*":{"docs":{},"}":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"全":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"正":{"docs":{},"则":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"特":{"docs":{},"例":{"docs":{},",":{"docs":{},"即":{"docs":{},"等":{"docs":{},"价":{"docs":{},"于":{"docs":{},"正":{"docs":{},"则":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"的":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"剩":{"docs":{},"余":{"docs":{},"路":{"docs":{},"径":{"docs":{},"类":{"docs":{},"型":{"docs":{},"节":{"docs":{},"点":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}},":":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}},"完":{"docs":{},"成":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"也":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"topics/router.html":{"ref":"topics/router.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"会":{"docs":{},"被":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"于":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"。":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"说":{"docs":{},",":{"docs":{},"在":{"docs":{},"路":{"docs":{},"由":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"就":{"docs":{},"有":{"docs":{},"可":{"docs":{},"能":{"docs":{},"被":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"器":{"docs":{},"直":{"docs":{},"接":{"docs":{},"过":{"docs":{},"滤":{"docs":{},"掉":{"docs":{},"。":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"↑":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.009580838323353293}}},"↓":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.00718562874251497}}},"处":{"docs":{},"理":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"构":{"docs":{},"建":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}},"等":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"业":{"docs":{},"务":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"生":{"docs":{},"成":{"docs":{},"。":{"docs":{},"/":{"docs":{},"/":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}}}}}},"简":{"docs":{},"单":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"数":{"docs":{},"据":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}}}}}}}},"还":{"docs":{},"会":{"docs":{},"将":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}},"针":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"topics/service.html":{"ref":"topics/service.html","tf":0.0011976047904191617}}}}}}},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"这":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"是":{"docs":{},"针":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"。":{"docs":{},"而":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{"topics/nirvana.html":{"ref":"topics/nirvana.html","tf":0.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},".":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},".":{"docs":{},"i":{"docs":{},"p":{"docs":{},"'":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},"了":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}},"由":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}},"于":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}},"要":{"docs":{},"求":{"docs":{},"每":{"docs":{},"个":{"docs":{},"插":{"docs":{},"件":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"个":{"docs":{"topics/config.html":{"ref":"topics/config.html","tf":0.0015432098765432098}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"用":{"docs":{"topics/rest.html":{"ref":"topics/rest.html","tf":0.0036363636363636364}}}}}}}}}}}}}},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"=":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"。":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\\":{"docs":{},"t":{"docs":{},"]":{"docs":{},"*":{"docs":{},"=":{"docs":{},"(":{"docs":{},".":{"docs":{},"*":{"docs":{},")":{"docs":{},"$":{"docs":{},"`":{"docs":{},")":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}},"\\":{"docs":{},"+":{"docs":{},"n":{"docs":{},"i":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"[":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}},"取":{"docs":{},"得":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"反":{"docs":{},"序":{"docs":{},"列":{"docs":{},"化":{"docs":{},"成":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}},"后":{"docs":{},"通":{"docs":{},"过":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}},"能":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"可":{"docs":{},"读":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"构":{"docs":{},"建":{"docs":{},"了":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}},"读":{"docs":{},"取":{"docs":{},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"析":{"docs":{},",":{"docs":{},"产":{"docs":{},"出":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"。":{"docs":{},"两":{"docs":{},"个":{"docs":{},"选":{"docs":{},"项":{"docs":{},"的":{"docs":{},"值":{"docs":{},"对":{"docs":{},"应":{"docs":{},"两":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"分":{"docs":{},"别":{"docs":{},"返":{"docs":{},"回":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}}}}}}}}}}}}}}},"集":{"docs":{},"合":{"docs":{},"上":{"docs":{},"述":{"docs":{},"所":{"docs":{},"有":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{"topics/utils.html":{"ref":"topics/utils.html","tf":0.0011148272017837235}}}}}}}}}}}},"length":5172},"corpusTokens":["!=","\"\"","\"\",","\"${name}","\"${user}","\"*/*\"","\"*/*\".","\"/api/v1\",","\"/api/v1/some\".","\"/apis/myproject/v1\"","\"/apis/myproject/v1/someapi\"","\"/apis/v1\"","\"/apis/v1/messages\").","\"/apis/v1/messages/{message}\").","\"/apis/v1/someapi\"","\"/messages\",","\"/messages/{message}\",","\"/path\",","\"/some\",","\"accept\"","\"accept\".","\"alias\"","\"application/json\"","\"application/octet","\"application/x","\"application/xml\"","\"asynccreate\"","\"asyncdelete\"","\"asyncpatch\"","\"asyncupdate\"","\"auto\"","\"body\"","\"boilerplate\",","\"build","\"clientset/svca\"","\"clientset/svcb\"","\"content","\"context\"","\"context\",","\"converter\"","\"converter\"}","\"count\",","\"creat","\"create\"","\"custom\"","\"data\"","\"debian:jessie\",","\"delete\"","\"descriptors\"","\"docker","\"error\"","\"exampl","\"fatal\"","\"file\"","\"first","\"form\"","\"get","\"get\"","\"github.com/caicloud/nirvana/cmd/nirvana/api\"","\"github.com/caicloud/nirvana/cmd/nirvana/client\"","\"github.com/caicloud/nirvana/cmd/nirvana/project\"","\"github.com/caicloud/nirvana/log\"","\"github.com/caicloud/nirvana/rest\"","\"github.com/spf13/cobra\"","\"golang","\"golang:latest\",","\"header\"","\"http\"","\"http\",","\"https\".","\"imag","\"info\"","\"init","\"list","\"list\"","\"listmessages\"),","\"localhost:8080\",","\"messag","\"meta\"","\"method","\"methodname\")","\"modifiers\"","\"multipart/form","\"myproject/client/v1\"","\"nirvana","\"nirvana\",","\"number","\"origin\"","\"patch\"","\"path","\"path\"","\"pluginname\"","\"prefab\"","\"queri","\"query\"","\"registries\",","\"runtim","\"source\".","\"source,name\".","\"struct\"","\"text/plain\"","\"there","\"thi","\"update\"","\"v0.1.0\",","\"validator\"","\"validator\"}","\"var\"","\"version\",","\"warn\"","#","$","$gopath/bin","$gopath/src","$gopath/src/","$gopath/src/clientset","$gopath/src/myproject","$gopath/src/svca","$gopath/src/svcb","$path","${id}\")","&&","&clientset{}","&client{","&client{client},","&client{}","&cobra.command{","&container{title,","&container{}","&initoptions{}","&message{","'myconfig.name.firstname'.","'nirvana.ip'","(","(*api.definitions,","(*arbitraryinterface)(nil)","(*arbitraryinterface)(nil).","(*client,","(*container)(nil)","(*definitions,","(*http.response,","(*message,","(*types.package,","([]message,","([]string,","(a","(ac","(anytype,","(b","(builder","(c","(ctx","(e.g.","(executor,","(exported)","(from","(goon","(i","(in","(includ","(interface,","(interface{},","(m","(messag","(message1","(multipart.file,","(o","(or","(pem","(r","(reader","(service,","(string,","(types.object,","(uint,","(unexported)","(with",")","*","*/*。","*analyz","*analyzer)","*apibuild","*apibuilder)","*ast.commentgroup","*client","*client)","*clientset)","*cobra.command","*cobra.command)","*cobra.command,","*comment","*config","*config)","*contain","*container)","*converterforanobject)","*definition.definition)","*http.request","*http.request)","*initoptions)","*int,","*map[string]string)","*message,","*message.contain","*nirvana.config)","*pflag.flagset)","*plugininstaller)","*regexp.regexp","*request","*request)","*rest.client","*rest.config)","*string).","*v1.client","*validatorforanobject)","+nirvana:api=option:\"value\"。",".",".*:","...","...configurer)","...customoption)","...definition.descriptor)","...filter)","...interface{})","...plugin)","...service.definitionmodifier)","...service.filter)","...string)","../clientset/svca","../clientset/svcb","./","./bin/myproject","./build/myproject/dockerfil","./client","./client.go","./config/","./myproject","./v1/client.go","./v1/types.go","/","//","/apis/v1","/apis/v1/","/apis/v1/ab/something/the/rest/path","/apis/v1/resourc","/apis/v1/resources/{resource}","/apis/v1/{regexp:[a","/debug/pprof","/debug/pprof/profil","/debug/pprof/symbol","/debug/pprof/trac","/etc/nirvana/","/healthz","/healthz。","/home/go/src/myproject","/metric","/path","/path/path2","/path/path2/oth","/path/to/project\",","/version","/version。","/。","/,如果存在就重定向到没有","/,如果没有就加上","0\",\"content\":\"method","0\"},{\"id\":1,\"title\":\"method","0.","0702","0;","1","1\",\"content\":\"method","1\"},{\"id\":2,\"title\":\"method","1.","1.10.x","1.11)中,若项目处于","1.9.x","10)","10,","100","101\",\"data\":{\"id\":\"101\"}}","11.2","11.3","11.4","11.5","127.0.0.1:8081.","15:47:52.010+08","15:47:53.499+08","15:47:53.500+08","15:50:54.156+08","15:50:55.609+08","15:50:55.610+08","1,并且把","2","2\",\"content\":\"method","2\"},{\"id\":3,\"title\":\"method","2.","2.3.3","200","200,","201","202","204","2295,","2774,","3","3\",\"content\":\"method","3\"},{\"id\":4,\"title\":\"method","3.","3.1","3.2","300","4","4\",\"content\":\"method","4\"},{\"id\":5,\"title\":\"method","4.","4.2","4.4","404","4918,","5","5\",\"content\":\"method","5\"},{\"id\":6,\"title\":\"method","5.","500","5842,","6","6\",\"content\":\"method","6\"},{\"id\":7,\"title\":\"method","6.","6.5.1","6.5.10","6.5.11","6.5.12","6.5.13","6.5.14","6.5.15","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.1","6.6.2","6.6.3","6.6.4","6.6.5","6.6.6","6585,","7","7\",\"content\":\"method","7\"},{\"id\":8,\"title\":\"method","7.2","7168,","7231,","7232,","7233,","7235,","7725,","8","8\",\"content\":\"method","8\"},{\"id\":9,\"title\":\"method","8.1","8080","8080:8080","8080。","9\",\"content\":\"method","9\"}]",":=","=",">","[5,","[]*ast.commentgroup","[]byte","[]byte,则直接将数据写入到响应。","[]byte,则直接将数据写入到响应。如果是其他类型,则使用","[]byte,则直接将数据转换为这两个类型。对于其他类型,使用","[]consumer,","[]def.definition{getmessage},","[]def.definition{listmessages},","[]def.middleware{somemiddleware},","[]def.operator{","[]def.parameter{","[]definit","[]definition.operator{newcustom(f,\"custom","[]descriptor","[]exampl","[]filter","[]funcfield","[]index","[]int","[]message,","[]middlewar","[]oper","[]paramet","[]producer,","[]result","[]string","[]string)","[]string.","[]string{commentsoptiondescriptors,","[]string{},","[]structfield","[{\"id\":0,\"title\":\"method","\\t]*=(.*)$`)","\\t]*\\+nirvana:api[","`","`c.config(externalconfigname)`/`c.set(externalconfigname,","`converter`.","`desc:\"debug","`desc:\"desc","`desc:\"log","`desc:\"nirvana","`desc:\"overrid","`desc:\"tl","`desc`","`desc`).","`json:\"content\"`","`json:\"id\"`","`json:\"title\"`","`key`","`pointer`","`source:\"header,cont","`source:\"query,start\"`","`source:\"query,start,default=100\"`","`validator`.","a.","ab","abov","accept","accepttypeal","account}/nirvana.git","actions.","activ","add","add(point","adddescriptor","adddescriptor(descriptor","addfilt","addfilter(filt","addhook(hook","addmodifi","addmodifier(modifi","addopt","addoption(prefix","after(ctx","ag","age\"`","agenthostport","alias.","allow","altern","alway","analyz","analyzeranalyz","ananlyzer.","anonym","anoth","anotherautostruct","anytyp","anytype)","api","api.go","api.go:179","api.go:87","api.go:95","api.register(root)","apibuild","apis.","api。","api。api","api,并且允许用户接入其他日志系统。","api,用于取得服务运行时信息。","api,用于生成","api,用于获取一条消息:","append","application/json","application/octet","application/x","application/xml","arg","args);","argument","array\",","array,","associ","asynccr","asyncdelet","asyncpatch","asyncupd","auto","automat","b.","back","badgateway","badrequest","base","basic","befor","before(ctx","behavior","behavior.","between","bin","bind","bodi","body()","body(contenttyp","body.","body,但是","body,将数据转换为业务函数需要的数据类型(通常是结构体)。produc","boilerpl","boilerplate\")","bool","bool(tag","bool)","bool,","bool.","brief","browser","build","build()","build(reason","builder","builder()","builder.","builder,factori","builder:","buildimag","built","byte","byte(tag","bytes.","c","c,","c.rest.request(\"get\",","c.set(externalconfigname,","c.svca","c.svca,","c.svcb","c.svcb,","c.v1","c.v1,","call","called.","can't","careful,","carri","case","cases,","categori","category()","categorycustom","categorystruct","categoryvar","cd","cert","certain","certif","cfg","cfg)`","chain","chain)","chain.continue()","char","check","checker","checker(check","child","children","class","clean","cleaner","cleaner.","clearer","cli","cli.svca().v1().listmessages(context.background(),","cli.v1().listmessages(context.background(),","client","client,","client.","client.go","client.go:106","client.go:73","client.go:81","client.mustnewclient(&rest.config{","client.register(root)","clients.","clientset","clientset.","clientset.go","clientset.go:","clientset.mustnewclientset(&rest.config{","client。而","client,用于生成","clone","clone(wrapp","cmd","cmd/nirvana","code","code()","code.","collect","comamnd","combin","command","command(cfg","command.","commands.","comment","comments(po","comments.","commentsoptionalia","commentsoptionalias}","commentsoptiondescriptor","commentsoptionmodifi","commentsoptionmodifiers,","commentsoptionorigin","comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是","commit","common","complet","concret","conet","config","config(nam","config.","config.json","configa","configa(fielda","configb","configb()","configinstal","configinstaller)","configur","configure(cfg","configure(configur","configurers.","configurer:","config:","conflict","connections.","const","consum","consume(r","consume.","consumeallifconsumesisempti","consumenoneforhttpget","consumers:","consumer,converter,prefab","consumer,即允许请求体为空。","consumer:","consumes.","contacts:","contain","container.","containercontain","container:","content","content\"))","content\",","content\"}","content.","content:","contentlength","contentlength()","contenttyp","contenttype()","content}","context","context.","context.context","context.context)","context.context,","context.context。","contexthttpcontext","contextprefab","contextprefab。请参考","contextu","context。http","context。在这种场景下,如果每个","continu","continue(context.context)","continue):","convert","converter.","converter.for(func(ctx","converter:","converterforanobject","converter。","convertobjectv1toobjectv2(object.(*objectv1))","correct\")","correct\",","correspond","count","count)","count).","creat","create)。","creation,","curl","current","custom","customopt","customtracer(trac","data","data\"","data\".","data(&messages).","data(message1).","data(valu","data.","data,然后","db","deal","debian:jessi","debug","declar","def.dataerrorresults(\"a","def.definition.","def.definition{","def.descriptor{","def.get,","def.list,","def.pathparameterfor(\"message\",","def.prefab,","def.query,","default","default()","default,","default:","default={value}","defaultcontain","defaultcontainer.get(instance,","defaultcontainer.put(instance)","defaultcontainer.putinterface(iface,","defaulttracer(servicenam","defaultvalu","defin","definit","definition.","definition.destin","definition.error。","definition.funct","definition.method","definition.oper","definition.operatorfunc(operatorkind,","definition.sourc","definition.typ","definition.typeof(&objectv1{})}","definition.typeof(&objectv2{})}","definition.typeof(&object{})}","definition/method","definitionmodifi","definitionmodifier)","definitions()","definitions,","definitions.","definitions:","definition。在我们实际开发过程中,经常会要求","definition。请求过滤器则是在","definition此处的","delet","dep","depend","dep:https://github.com/golang/dep","deriv","derived(","desc","descid","describ","descript","description\")}","description()","description(descript","description:","descriptions.","descriptor","descriptor'","descriptor(descriptor","descriptors.","descriptors.go","descriptor。","descriptor。然后动态生成一个","descriptor:","destin","destination()","destinationhandl","destinationhandler)","destinationhandlerdestinationhandl","destination:meta,data,error。","differ","directli","directori","disabl","disable()","distinguish","divid","do(ctx","do(ctx)","do(req","doc","dockefile),还有一个","docker","dockerfil","document","don't","done","doublelog(en","down","elem","element","email:","embed","empti","empty,","enabl","enabled\"`","enableplugin","enableplugin(plugin","encod","ensur","entry.","env","env,","equal","err","error","error()","error(...interface{})","error(format","error(v","error)","error)。其中参数的","error,","error.","errorf","errorf(string,","errorln","errorln(...interface{})","errorproduc","errors.badrequest.build(\"projectname:modulename:somethingnotcorrect\",","errors.badrequest.error(\"${name}","errors.notfound.build(\"myproject:message:messagenotexist\",","errors:","error。","error。其中","error。创建","error,但是第一种方法比第二种多出更多特性:","errros.","etc.","everyth","ex.","exampl","example\",","example\",\"content\":\"exampl","example):","example.","example.ag","example.firstnam","example:","example_ag","example_first_nam","except","exec","execut","execute(context.context)","execute(descriptor","execute.","executed.","executewithconfig","executewithconfig(cfg","executing.","executor","executor.","executor。inspector","executor。如果不能返回","executor,rout","executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。","executor,因此所有中间件的","exist","exists,","exit","exp","exp:","expectationfail","export","expos","expression.","extend","extern","externalconfignam","extract","f","f(context.context,","f)","f.","facotri","factori","factory.","factory。也直接提供了","factory(比如一类表示","factory,factori","faileddepend","fals","false,","fatal","fatal(...interface{})","fatal*","fatalf","fatalf(string,","fatalln","fatalln(...interface{})","field","field,","field.","fielda.","fieldb.","fields,","fieldtype)","file","file(key","file(nam","file)","file,","file。","fill","fillleadingslash","filter","filter(filt","filtered.","filters()","filters.","filters.go","filter。","find","findpackag","findpackages(target","finish","first","firstcontextparamet","firstnam","fix","flag","flag,","flags,","flags.stringslicevar(&o.registries,","flags.stringvar(&o.boilerplate,","flags.stringvar(&o.buildimage,","flags.stringvar(&o.imageprefix,","flags.stringvar(&o.imagesuffix,","flags.stringvar(&o.runtimeimage,","flags.stringvar(&o.version,","flags/env/config","flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用","flag。","flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。","float32","float32.","float64","float64.","fmt.print;","fmt.printf;","fmt.println;","follow","for(f","forbidden","fork","form","form(key","form(nam","format","format)","format.","format,比如","found\")。","four","framework","frequent","from.","full","fullmatch:.*","fullmatchregexpnod","func","func()","func(c","func(cmd","func(context.context,","func(ctx","func(d","func(resp","func.","funcfield","function","function.","function:","gatewaytimeout","gen.","gener","generate()","generate(ctx","generator.","generators/golang","generators/swagg","generators/util","generator。这些","generator:","get","get()","get(inst","get(key","get(typin","get/sav","get____","getbool","getbool(key","getdur","getduration(key","getfloat32","getfloat32(key","getfloat64","getfloat64(key","getint","getint(key","getint16","getint16(key","getint32","getint32(key","getint64","getint64(key","getint8","getint8(key","getmessag","getmessage(ctx","getstr","getstring(key","getstringslic","getstringslice(key","getuint","getuint(key","getuint16","getuint16(key","getuint32","getuint32(key","getuint64","getuint64(key","getuint8","getuint8(key","get。","get,两者没有区别。","git","git@github.com:{your","github","github.com/caicloud/","github.com/caicloud/nirvana","github.com/caicloud/nirvana/cmd/nirvana","github.com/caicloud/nirvana/definit","github.com/caicloud/nirvana/definition/method","github.com/caicloud/nirvana/error","github.com/caicloud/nirvana/operators/convert","github.com/caicloud/nirvana/operators/valid","github.com/caicloud/nirvana/plugins/healthcheck","github.com/caicloud/nirvana/plugins/logg","github.com/caicloud/nirvana/plugins/metr","github.com/caicloud/nirvana/plugins/profil","github.com/caicloud/nirvana/plugins/reqlog","github.com/caicloud/nirvana/plugins/trac","github.com/caicloud/nirvana/servic","github.com/go","github.com/golang/dep/cmd/dep","github.com/spf13/cobra","github.com/spf13/vip","githuh","given","global","glog","go","go.","go111module=on","golang","golang/dep","golang:latest","golang:https://golang.org/dl/","gometalint","gometalinter:https://github.com/alecthomas/gometalint","gone","goon,用来确定是否需要执行下一个","gopkg.in/go","gopkg.toml","gopkg.toml。通过如下命令即可完成依赖包的安装:","gracefulli","handl","handle(ctx","handle.","handler","handler.","handlers.","handler。","handler。这些","handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。","handler:","hash","hash(hash","header","header(key","header(nam","header.","headerwrit","headerwritable()","healthcheck","healthchecker)","help","help`,","here","higher","highest","highprior","hold","hook","hook()","hook)","hook.","host","host:","host:port","hosts:","http","http.defaultcli","http.handler","http.handler,用来处理请求。","http.methoddelet","http.methodget","http.methodpatch","http.methodpost","http.methodput","http.responsewrit","http.responsewriter,","http.responsewriter.","http.statusaccepted(202).","http.statuscreated(201).","http.statusnocontent(204).","http.statusok(200).","http://127.0.0.1:8081","http://localhost:8080/apis/v1/messag","http://localhost:8080/apis/v1/messages/100,即可得到一个","http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是","http://localhost:8080/apis/v1/messages/101,即可得到一个","http://localhost:8080/apis/v1/messages:","httpcode","httpcontext","httpcontextfrom()","httpcontext。如有必要,可以通过这些接口拿到与请求相关的所有数据。","httpcontext,除非您明确知道如何修改。","httpmethod","https\"`","https.","httpversionnotsupport","id","id\"),","id\",","id,","id.","id/nam","id:","identifi","id,也就是","ifac","ignor","imag","image\",","imageprefix","imagesuffix","immedi","immediately.","implement","implementation.","import","import(path","in()","index","indic","info","info(...interface{})","info(f|ln)","info,","info.","infof","infof(string,","infoln","infoln(...interface{})","infoln.","inform","information.","inherit","init","init()","init.go","initopt","init,用于初始化标准项目目录结构和必要文件","input","insensit","inspect","inspect(context.context)","inspector","inspector:","instal","install(build","install(flag","install/initi","instanc","instance)","instance.","instead","insterface{})","insufficientstorag","int","int(tag","int)","int*,","int,","int.","int16","int16(tag","int32","int32(tag","int32.","int64","int64(tag","int64.","int8","int8(tag","interfac","interface,","interface.","interface{}","interface{})","interface{},","intern","internalservererror","interrupt","invalid","io.read","io.readclos","io.readcloser,","io.reader,","io.writer,","ip","ip\"`","ip()","ip(ip","ip.","is:","isset","isset(key","it'","it.","itself).","itself.","json","json.marsh","json.unmarsh","key","key,","key.","key/valu","keyfil","keyword.","key,默认为","kind","kind()","kind.","last","lasterrorresult","length","lengthrequir","level","level.","leveldebug","leveldebug)","levels.","lifecycle.","line","list","listen","listen.","listmessag","listmessages(ctx","localhost:8080","locat","locations.","lock","locked()","locked.","log","log.","log.fatal(err)","log.fatalln(err)","log.info(msgs)","log.logg","log.logger)","logger","logger\"`","logger()","logger(l","logger(logg","logger.","logger。","logger,使用的是","logger,用于输出错误。","logo","logs\"`","logs,","logs.","long:","look","loopdetect","lower","lowprior","main()","main.go","maintain","make","make([]message,","make(ctx","makefil","makefile,只需要使用简单的","manag","mani","manner","map","map,","map.","map[string][]definit","map[string][]definition.definit","map[string][]definition.middlewar","map[string][]str","map[string]string,会写入","map[typename]*typ","mappings.","marshal","match","match.","matching.","math.maxint32","mean","mediumprior","messag","message\"),","message\",","message()","message).","message.getmessage,","message.go","message.listmessages,","message1","messagenotexist","messagenotexist.error(id)","messages\"),","messages\",","messages.","meta","meta(valu","method","method)","method.","method.get(&message.container{},","method.get((*arbitraryinterface)(nil),","method.put(message.newcontainer(\"method","method.putinterface((*arbitraryinterface)(nil),","method:","methodnotallow","methods.","middlewar","middlewares()","middlewares.","middlewares.go","middlewares:","middlewares,definitions,children","mime","mimeal","mimeformdata","mimejson","mimenon","mimeoctetstream","mimetext","mimeurlencod","mimexml","missing.","mkdir","mod","mode.","modif","modifi","modifier()","modifier(modifi","modifier.","modifiers.","modifiers.go","modifiers。","modifier。","modul","more","msgs,","multipart/form","multipl","mustnewcli","mustnewclient(cfg","mustnewclientset","mustnewclientset(cfg","myproject","myproject/cli","myproject:v0.1.0","name","name\"`","name()","name(nam","name,","name.","name:","names.","namespac","namespace(n","namespaces.","need","need.","neg","nest","net/http/pprof","networkauthenticationrequir","new","new(message)","newanalyz","newanalyzer(root","newapibuild","newapibuilder(root","newclient","newclient(cfg","newclient(cfg)","newclientset","newclientset(cfg","newclientset(cfg)","newcontain","newcontainer()","newcontainer(root","newcontainer(title,","newcustom","newcustom(f","newinitcommand","newinitcommand()","newkind(400)","newkind(401)","newkind(402)","newkind(403)","newkind(404)","newkind(405)","newkind(406)","newkind(407)","newkind(408)","newkind(409)","newkind(410)","newkind(411)","newkind(412)","newkind(413)","newkind(414)","newkind(415)","newkind(416)","newkind(417)","newkind(418)","newkind(422)","newkind(423)","newkind(424)","newkind(426)","newkind(428)","newkind(429)","newkind(431)","newkind(451)","newkind(500)","newkind(501)","newkind(502)","newkind(503)","newkind(504)","newkind(505)","newkind(506)","newkind(507)","newkind(508)","newkind(510)","newkind(511)","newlin","newserv","newserver(c","newsimpleserializer(contenttype)","next","nil","nil)","nil,","nil.","nil。如果服务异常,则返回相应的错误。","nirvana","nirvana.","nirvana.configur","nirvana.json","nirvana.registerconfiginstaller(&plugininstaller{})","nirvana.toml","nirvana.yaml","nirvana.yaml。","nirvana_ip).","nirvanacommand","nirvanacommandhook","nirvanacommandhook)","nobodi","nobody@nobody.io","node.","node:","nodes:","non","notaccept","notextend","notfound","noth","nothing)","notimpl","number","object","object,","object.","objectof","objectof(pkg,","objv2,","obtain","occur","occurs,","occurs.","offset","ok","ok,","on","on,","on.","once.","one.","opeartor","open","openapi","openapi/spec","opentrac","opentracing.span)","opentracing.tracer)","oper","operate(ctx","operator'","operator,","operator.","operatorfunc","operatorfunc(kind","operatorkind","operators/convert","operators/valid","operators:","operators:","operator。","operator,那么","operator:","operator:valid","optim","option","option,","options.","options.install(cmd.persistentflags())","options.manuals(),","options.run(cmd,","options.validate(cmd,","optionsregexp","option,并且实现","order:","origin","os.exit(1)","os.exit(1).","otherwis","out","out()","output","outsid","overrid","override,","overrideglob","p","packag","package.","packagecom","packagecomments(path","packages(par","packages.","panic","panic(err)","panic.","panic。","paramet","parameter.","parametergener","parametergenerator)","parametergeneratorparametergener","parameters.","parameters:","parent","parent'","pars","parsecom","parsecomments(com","parserequestform","pass","patch","path","path(\"message\",","path(key","path(nam","path(path","path.","path:","pathnod","path,query,header,form,file,bodi","pattern","paymentrequir","pkg","pkg/api","pkg/apis/modifi","pkg/apis/v1/descriptors/message.go","pkg/message/message.go","pkgpath","place","playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。","playground/validator,提供了用于生成","pleas","plugin","plugin.","plugininstal","plugins.","po","pointer","pointer.","port","port\"`","port()","port(port","port.","pos.","posit","post","pr","preconditionfail","preconditionrequir","predefin","prefab","prefab。","prefab。启用之后,所有业务函数的第一个参数必须是","prefab,即","prefab,名称为","prefix","prefix\")","prefix\",","prefix:","prefix,那么","present","previou","printer","prior","prioriti","priority()","privat","process","produc","produce(w","produce.","produceallifproducesisempti","producenoneforhttpdelet","producerconsum","producers,并且他们的行为和","producers:","producer。","producer,即允许响应体为空。","producer:","produces.","project","project\")","project.register(root)","project:","prometheu","prometheus,提供了一个","provid","proxyauthrequir","put","put()","put(in","put(inst","putinterfac","putinterface(ifac","qualifi","queri","query(\"count\",","query(key","query(nam","query,head","r","read","reader","reader.","readme.md","reason","reason,","reason.","reason。","reason,方便客户端判断错误类型。","recal","receiv","recommend","recommended.","recovered.","redirecttrailingslash","reflect.kind","reflect.structtag","reflect.typ","reflect.type)","regexp","regexp.mustcompile(`^[","regexp:","regexp:[a","regexpnod","regexpnode.","regiser.","regist","register([]def.descriptor{{","register(root","registerconfiginstaller(ci","registerdestinationhandl","registerdestinationhandler(handl","registerparametergener","registerparametergenerator(gener","registerprefab()","registri","registries\")","regular","relat","replac","replacement:","repo","report","req","request","request()","request(method","request,","request.","requestedrangenotsatisfi","requestentitytoolarg","requestexecutor","requestheaderfieldstoolarg","requestid(en","requestidkey(key","requests.","requesttimeout","requesturitoolong","request。config","resourc","respons","response.","responsewrit","responsewriter()","responsewriterresponsewrit","responsewriter。可是使用","rest","rest.newclient(cfg)","result","result.","results.","results:","results。其中","retriev","retrun","return","return.","rfc","right.","root","root.addcommand(newinitcommand())","root.execute();","routepath()","router","router.","routingchain","routingchain)","routingchain.continue()","rules:","run","run(cmd","run.","run:","runtimeimag","same","scheme","scheme.","scheme:","schemes:","second","see","segment.","select","sens","sequenc","serial","serv","serve()","serve=\":8081\"","server","server.","servic","service.","service.builder,","service.contextprefab。这个","service.registerconsumer(consumer);","service.registerconsumer(serializer);","service.registerproducer(producer);","service.registerproducer(serializer);","service.servehttp()","service/rout","services.","serviceunavail","set","set(key","set(nam","set.","setdefaultlogger()","sethook","sethook(hook","setlogg","setlogger(logg","setmodifi","setmodifier(m","sever","severityerror","severityfat","severityinfo","severitywarn","short","short:","shortflag","show","shut","shutdown","shutdown(ctx","shutdown,","signature:","silentlogg","singl","site","situation.","slice,","someapi","somefunction()","someth","something.name)","somethingnotcorrect","somethingnotcorrect.derived(err)","somethingnotcorrect.error(something.name)","sourc","source()","source:","sourceaddr(en","source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是","source。其他的","source:path,query,header,form,file,body,auto,prefab。","span","span.","special","specially.","specif","specifi","specified,","start","starting.","statu","statuscod","statuscode()","stderr","stdlogger。可以通过","stdout","store,","store.","stream","stream\"","string","string(tag","string)","string,","string.","stringnod","stripped.","strongli","struct","struct(inst","struct,","struct.","structfield","structs,","structure\",","struct{}","stuff","sub","submatches.","subsequ","succeess","success","suffix\")","suffix\",","summari","summary:","svc","svca","svca()","svca.interfac","svca.newclient(cfg)","svcb","svcb()","svcb.interfac","svcb.newclient(cfg)","swagger","tag","tag()","tag.","tag。","take","target","target.","teapot","termin","terminating.","test","text/plain","the/rest/path","three","time,","time.dur","time.duration.","titl","title:","tl","tls(certfile,","token.pos)","toolchains\",","toomanyrequest","touch","trace","tracer","treat","true,","true,那么除了设置当前","two","type","type\"","type\"`","type()","type.","type.fieldbyindex.","typenam","typenameinvalid","types.","types.go","types:","type为了能让","u","uint","uint(tag","uint(value),","uint)","uint*,","uint.","uint16","uint16(tag","uint16)","uint32","uint32(tag","uint32.","uint64","uint64(tag","uint64.","uint8","uint8(tag","uintptr","unauthor","unavailableforlegalreason","under","uninstal","uninstall(build","uniqu","unless","unmarsh","unprocessableent","unsupportedmediatyp","until","up","updat","upgraderequir","upper","url","urlencod","urlencoded\"","us","usag","use.","use:","used.","user","usual","util","v","v(level)","v.","v1","v1()","v1.","v1.interfac","v1.mustnewclient(cfg),","v1.newclient(cfg)","v1:","v2","valid","valid.","validate(cmd","validate(nam","validate(object.(*object));","validate(target","validation,","validator.","validator.int(\"min=1\"),","validator.uint(\"min=1\"),","validator:","validatorforanobject","validators,用于","valu","value.","valuecontain","valuecontainer()","valuecontainer,","valuecontainer这个接口是对","values.","var","variantalsonegoti","vc","vendor","vendor。","verbos","verboser,","verboser.","version","version(vers","version.go","versions:","via","view","viper","w.","want","warn","warning(...interface{})","warning.","warningf","warningf(string,","warningln","warningln(...interface{})","way","ways.","whether","within","without","won't","wrapper","wrapper.","write","writeheader()","writeheader().","writer.","written","wrong,","wrong.","www","x","xml.marshal","xml.unmarsh","z]{1,2}","z]{1,2}}/{fullmatch}/{path:*}","{","{\"id\":100,\"title\":\"thi","{\"reason\":\"myproject:message:messagenotexist\",\"message\":\"ther","{...)","{...}","{executablefilepath}/","{executablefilepath}/config/","{return","|","}","})","}),","},","}...)","↑","↓","│","└──","├──","。","一个创建命令的私有函数","一个基本的插件框架如下:","一个表示当前命令的所有参数的","一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过","一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。","一致的","一致的响应,并且业务函数需要返回数据的时候,就会调用这个","一致的时候,那么可以直接使用工具方法:","一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个","一般情况下,我们使用最新版本的","一般情况下,插件应该通过插件","一般情况下,用户会使用这个全局的容器。","上","上添加一个中间件用于提取","上的中间件,用于打印所有路由匹配成功的请求的日志。","下查看启用的","下面用一个例子来说明这几个节点:","不能满足实际的业务需求,可以通过","与","与业务函数的参数名称无关。","且成功匹配的情况下,中间件的执行按照","业务函数","业务函数有一致的行为表现。比如每个业务函数的第一个参数都是","业务函数返回结果如何放到请求的响应中。","业务方法:","业务逻辑的","业务逻辑目录,这个目录是生成的样板,可以修改或删除","两个服务项目。","中","中。","中一类特殊的","中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。","中也提供了直接打包成镜像的命令:","中传递","中使用","中创建","中创建实例并通过","中包含","中包含了两个组件功能实现了","中包含了许多实现了","中可以看到","中定义。api","中定义的动作以及对应的","中实现的唯一一个","中打印表格的功能。","中提供了","中携带","中添加","中添加插件配置。","中的公开字段根据一定的规则(规则参考上面的注释)从","中间件","中间件不应该修改","中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下:","中间件只与","中间件执行顺序","中间件接口如下:","中间件添加在","中):","中,context","中,不能在任何子目录下使用","中,业务函数是","中,存在一些","中,我们也经常看到使用数字","中,我们建议所有的","中,所有的","中,提供了","中,每一个","中,目前包括三个命令:","中,都有一组","中,错误是会进行特殊处理的。如果业务函数返回的错误符合","中,错误需要实现","中:","为","为了保证业务与","为了方便使用,nirvana","为了演示这个过程,我们逐步构建这个项目。","为所有","为所有的","为空的","为被替换为","主要是以","之上,构建了","之前。","之前使用。","之前,需要知道以下几件事情:","之后,编译运行。然后访问","之后,通过","之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于","之类的响应,没有响应体,不需要写入。","之类的请求,因此不能转换为任何数据类型。","也在当前包中。如果需要对配置进行扩展,增强","也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。","也就是说,业务可以完全不依赖框架。","也提供对","于","于是","介绍","从","从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了","从请求中获取数据。","从请求的那一部分取得数据,然后传递给业务函数。","代码如下:","以及与构建相关的文件","以及当前项目的版本信息以及监听的端口,默认端口是","以及插件化功能。","以外,config","以外,还会设置全局的","会从第一个","会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个","会把对应的","会显得非常冗余。因此","会生成一个完整的","会被由命令","会读取","传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用","传递给业务函数。","传递给中间件,然后由中间件调用链继续传递。最终经由","但是一般情况下,始终建议验证器放在前面,转换器放在后面。","但是一般情况下,我们不应该这样使用","但是为了使","但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。","使用","使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的","使用客户端","使用方法如下:","使用自定义的","使用范例","使用默认的","依赖的结构体都会被提取出来并生成到","保存了一个请求的数据,用","信息。","信息的提取。","修改。","修改一个资源的部分内容","修改器","修改器用于在生成路由之前修改","修改器,请求过滤器,api","值","值。一般情况下可以设置为代码的","健康检查插件","健康检查插件提供一个","先执行。并且执行之后会返回","全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的","公共部分的构建,而每个","公开给用户使用。于是我们需要给","关闭插件","其中","其他与","其他与具体","具体实例类型","内部,比如一个","准备工作","函数。请参考","函数即可:","函数放到方法容器中(需要在服务启动之前完成):","函数用于将一个实例放置到全局容器中,形成","函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会","函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考","函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说","分别对应","列表的","则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,nirvana","则是将业务函数的返回值转换并写入到响应的","则用于判断一个错误是否是由当前的","则用于构建特定的","则由","则表示请求不应该被继续处理,立刻丢弃。","则负责将业务函数的返回结果写入到响应体中。","则针对单个的业务参数和返回值,可以对值进行验证和修改。","创建","创建一个资源(非幂等)","创建的标准项目结构中,这个文件位于","创建的项目中,可以在","创建项目","创建项目时自动生成了","创建项目非常简单,不过在创建项目之前,首先需要下载安装","创建,用来表示每一个","删除一个资源","到命令中","到自己的账户下,然后下载源码到本地开发目录中:","到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个","前缀路径","剩余路径类型节点","剩余路径类型节点:","功能,则可以增加相应字段,否则应该使用插件机制增加功能。","功能,并提供了从","功能:","加上","加上一些附加属性,用来表示返回的错误码等信息。","加上空的","包","包中存在三个概念,分别是","包中对","包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。","包中):","包中,可以看到","包中,提供了如下功能:","包之间的依赖关系:","包介绍","包以外,其他包都是用于生成文档和客户端用的。","包会为每一个","包会从以下文件列表中读取配置文件:","包依赖了","包则是利用了","包利用","包包含","包包含了","包包含多个工具用于","包和","包和其他第三方的包,实际上是一个借助了","包在根目录中,实现了","包实现了","包实现了基于前缀树的路由和中间件功能。","包实现了基于前缀树的路由,并提供了三种类型的路由节点:","包实现了框架","包实际上都是利用了","包帮助用户快速构建项目。","包括:firstcontextparameter,consumeallifconsumesisempty,produceallifproducesisempty,consumenoneforhttpget,consumenoneforhttpdelete,producenoneforhttpdelete。","包提供了一个","包提供了一个实例方法容器,帮助用户把实例方法转换为函数。","包提供了一个简单的","包提供了一系列的方法帮助用户快速生成用于校验参数的","包提供了一组基础的日志","包提供了工具方法用于将转换函数包装成","包提供了相应的工具用于注册用户自己的","包提供的","包提供的数据结构生成","包提供的方法注册自定义的","包提供的方法进行注册:","包是一个全局实例容器,每种类型对应一个实例。","包有一个默认的","包来说就简单很多了,这个包里包含一个","包注册指标。采集端可以通过","包生成的错误会记录每个占位符的名称和值,保存在","包用于生成","包的","包的依赖,可以自行实现错误包,只要产出的错误符合","包的入口是","包的实现基于","包的插件能力:","包相对","包类似于标准库的","包读取源码并生成","包路径:","包还提供了一个全局的","包还提供了方法用于创建自定义验证器:","包进行","包进行路由构建和匹配。","包里提供了一个","包除了包含对","包,但是提供了方法用于生成格式化的错误和错误判断。","包,利用","包,提供了一个在","包,提供了基础工具用于读取项目配置文件,通常是","包,提供公共工具给其他生成器使用。","包,用于分离实例的创建和","包,用于读取项目源码,并生成与","即创建了","即可。","即可得到返回结果:","即可查看文档。","去读取指定路径的源码,然后从中找到标记了","去读取数据并进行类型转换。","参数值来源于","参数值来源于当前","参数名称,作为","参数和返回值定义","参数描述","参数来源","参数的类型转换和数据验证。","参数:","参考了","取得返回值,反序列化成","变更。","另外","只使用","只能生成","只需要将业务函数对应位置的","可以不同。","可以在","可以构建带有","可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。","可以读取源码,获取结构对象和注释信息。","可以通过","可能不能满足实际使用需求。因此","可被","同等级别的字段","名称","名称为","后通过","启动时会打印出","启用","启用或关闭双重日志,即请求开始一条日志,请求结束一条日志","启用或关闭显示源地址","启用或关闭显示请求","启用插件后,可以直接向","启用插件并使用默认配置","命令","命令为例,说明单个命令的基本结构:","命令启动容器,然后进行访问:","命令对应的包在","命令就可以完成编译工作:","和","和一个使用了","和业务函数的参数一一对应,而","和插件系统。这个包放置在根目录中是因为这个包是","和相应的功能。","和端口。","和第三方功能的扩展)。","和返回值的","和配置读取,为","因为只获取一条消息,此处为","因此在","因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。","国际化","在","在一个","在一个请求路由匹配成功后,nirvana","在上面的定义中,存在两个额外功能:","在上面的路径节点中,每个节点都可以绑定一个","在业务函数中使用","在业务函数中,仍然以","在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在","在业务的实际场景中,默认提供的","在使用","在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。","在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。","在完成了","在完成修改并提交到自己的","在实现一个自定义的","在实际的业务中,http","在实际的使用过程中,并不需要实现这个复杂的接口。nirvana","在常见的商业","在当前","在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:","在接收到","在整个","在服务启动之后,可以通过浏览器或者命令行访问","在某些场景下,我们需要从源头对请求进行处理和过滤。nirvana","在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。","在每个","在没有","在设计上与现存的一些","在运行过程中使用的","在这个包中,主要包含三个概念:config,cli","在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。","在需要发布的时候,通常需要打包成镜像的形式,在","在需要生成","在项目的","地址。","基本结构如下:","基础类型的转换器这些转换器一般是用于将请求里的","基础类型,结构体类型和自定义类型。目前验证方法基于","处理框架:","多客户端整合","多客户端整合。","大版本的兼容性。即使用","大部分字段与","如下:","如果","如果以下路径都添加了中间件:","如果希望对","如果接收类型是","如果有多个","如果服务正常,则","如果类型符合","如果能返回一个","如果设置了","如果读取到配置文件,那么除了使用","如果需要新增命令扩展","如果需要给字段设置默认值,则需要使用","字段中,可以在客户端使用","字段无效","字符串类型节点","字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与","字符串类型节点:","存在优先级,优先级高的","存放","存放编译后的二进制文件","存放项目","存放项目的","存放项目的启动命令","完全匹配。","完成","定义","定义。","定义了","定义了一个返回","定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。","定义和业务逻辑实现","定义和类型信息。api","定义和类型信息可以用来生成","定义和类型转换成了","定义更加明确,我们应该根据场景确定使用哪个","定义来确定每个字段的来源","定义的可读性。也就是说","定义的无关性,nirvana","定义相关的代码都在这个目录中","定义,再对应业务函数:","定义,可以修改或删除","定义,然后由","定义,用于描述","定义:","实例","实例。","实现了","实现了这个接口后,通过","实现的","实现,帮助用户快速构建名为","实际上是一个","实际上是调用的","实际上要填写的部分就是只与自身业务相关的信息。modifi","客户端。","客户端代码,可以通过","客户端的使用非常简单,只需要创建客户端,然后调用相应的","客户端,其他语言客户端尚不支持)。","容器如下:","对于","对于不需要输出日志的场景,使用","对于中间件而言,处理完当前的任务之后只需要调用","对于没有","对于结构体类型,在需要的字段上添加名为","对于这种错误,都会以","对应","对应一个","对应业务函数的参数信息。用于告知","对应业务函数的返回结果。用于告知","对应的业务函数如下:","对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。","将","将数据写入到响应。","将框架传递给它的与请求绑定的","将类型转换为字节数据写入到响应体中。","将返回值转换为字节写入响应中。在","就会自动开始在容器内编译和打包镜像。不过这个过程中需要","就无效。如果","就能够看到","就足够了。但是为了让错误能够以","尾部是不是存在","工作流程","帮助用户把实例方法转换为","并且会检查最后一个","并使用","并成为","应该返回","开发工具介绍","开发的情况下,需要保持对","异步修改资源部分内容","异步创建资源","异步删除资源","异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。","异步更新资源","必须是","必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method","快速生成","性能分析插件","性能分析插件添加与","成功状态码","我们建议","或","或域名,可以有多个","所有与","所有的","所有的业务逻辑都应该在这个目录中","打包完成后,可以通过","执行","执行完成之后,请求也处理完成了。","执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。","扩展了","指定其他输出目录(目前仅支持生成","接下来以","接下来我们给项目增加一个","接口。swagger","接口。其中","接口。即:","接口。如果实现了,就会以","接口。用户在","接口即可。","接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此","接口如下(这个接口并没有显式定义在","接口如下:","接口实例类型","接口实现了请求跟踪机制,会在","接口或者是","接口,则会根据这个接口来生成错误码和返回数据结构。","接口,包装了请求的信息。作为路由上下文使用。//","接口,可用于针对单个参数或返回值进行验证和修改:","接口,用于创建具有一类特征的","接口:","接收配置以外,还可以通过一些帮助方法获取配置:","描述","描述。所有的","描述符","描述符。构建完成的","提交代码。","提供了","提供了一个命令用于从项目中生成文档:","提供了一个新的接口:","提供了两种类型的","提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而","提供了多个方法用于设置生成服务需要的日志,definit","提供的","提供的一些","提供的用于生成","插件","插件实现了这个接口之后,即可通过","插件接口的插件。","插件接口:","插件提供了一个函数接口:","插件机制","支持良好,因此在","数据。","数组包含了这个路径下的所有定义。","整合客户端","文件","文件中,方便客户端使用。","文档","文档。","文档中,我们将逐步介绍这些组件的使用方式以及设计理念。","文档和客户端。","文档截图如下:","文档生成和客户端生成会依赖这个配置文件进行","文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行","文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)","方法","方法。","方法。clone","方法。比如某个","方法一","方法二","方法包","方法包。","方法安装插件。","方法就应该是","方法用于在对","方法用于安装","方法用于直接创建出","方法用于验证参数是否正确","方法真正执行命令对应的逻辑","方法获取类型,","方法获得","方法返回,因此这两种类型没有对应的方法。","方法都是语义层面的,为的是提高","方法,这两个方法就是提供给插件允许插件设置自身的配置的。","方法,这个方法是一个抽象方法,用于描述一种行为(比如","无","时候,使用","时,使用","是","是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同","是一个着重于提高开发效率和业务解耦的","是一个短语,用于描述这个","是一样的。","是业务函数返回值处理器,通过调用","是从","是具体要验证的类型,不能使用接口。","是否由这个错误工厂生成。","是基础包,分别负责日志基础接口和错误处理基础接口。","是对","是由服务端生成而不由客户端提交,error","是真正的参数生成器,通过调用","是返回一个资源列表的,那么","是链式调用的,也就是说上一个","暴露","更新一个资源(幂等)","有","有关的所有数据结构,产出的结构可用于生成文档和客户端。","有关,因此如果多个","有时候默认的验证器不能覆盖复杂的验证需求,因此","服务。","服务。因此","服务使用的协议,只能填写","服务启动提供了命令行支持。","服务用于访问这个文档。打开浏览器,访问","服务配置的特殊性,config","机制,允许在","机制,可以在收到一个请求的时候,立刻进行处理。并根据","机制,用于单独配置每一项信息:","来启用插件,并且将插件","来唯一确定一个错误","来提供","来标志的错误。但是数字","来生成","来生成一个能够处理当前的路由上下文的","来自于服务端本身。","来表达这些配置:","来设置用于接收响应的值(都是指针)。然后","来设置请求的相关值,meta","构建","标准接口如下:","根命令中,比如:","根据上面的","根据资源唯一","框架。","框架不同,它的核心目标是让业务与框架隔离。","框架中处于最高优先级。filter","框架会为每个请求构建这样的","框架的","框架的设计核心思想是:隔离","框架设计概览","概念","概览","模式后,level","正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。","正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个","正则类型节点(包括一个全匹配类型节点)","正则类型节点:","正则表达式,用于匹配路径","正确实现","此时","此时在","每个","每个命令都是一个目录,互相之间不干扰。每个目录都有一个","每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考","每种","比如设置","没有太大区别:","注册","注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的","注册需要的","注意,get()","注意:oper","注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。","注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。","注:如果在","注:这个","注:这个包里所有的接口都不会被用户直接使用,用户只能通过","测试以外,还需要使用","添加","添加到","添加成功后,所有前缀匹配","然后创建两个服务项目(仅用于演示):","然后在","然后就可以直接使用命令创建项目(请确保","然后编译运行,访问","版本信息插件","版本信息插件提供一个","版本信息,用于区分不同版本的","版本名称","版本所有的","版本描述","版本的","版本规则","版本识别和","版本需要用到的中间件","版本需要用到的类型转换器","状态码作为基础的:","状态码即可大致判断一个错误的行为","状态码并不足以表达业务中繁复的错误。因此我们将","状态码视为错误大类(比如","状态码,message()","生成","生成。","生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了","生成代码","生成代码:","生成代码:","生成匿名函数:","生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。servic","生成器,简单的将参数里的","生成客户端","生成的客户端代码如下:","生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。","生成的客户端是版本化的,版本在","生成,客户端代码生成,项目结构生成。","生效之前,对","用于传入参数输出一个真正的错误。","用于传递请求的上下文。context","用于分析源码的","用于合并请求和响应的","用于封装响应的","用于封装请求的","用于将业务函数返回值写入","用于将请求体中的数据转换为业务函数需要的类型,而","用于描述一个业务函数的参数的来源和默认值。","用于文档和客户端生成","用于暴露服务端指标。","用于构建","用于检查服务是否正常。","用于生成一个匿名函数,生成的函数的签名没有方法的","用于生成业务函数的参数的","用于真正发起请求,并完成","用于表示代码注释的","用于访问","由","由于","的","的一个扩展,提供了一些功能方便中间件使用。//","的一次封装,方便获取对应位置的字符串数据。//","的两个方法:","的主要命令,利用","的使用方法和普通","的入口包。","的兼容性。","的功能,需要按照上述结构进行开发。","的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。","的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:","的参数与返回值。","的参数和返回值中,尽量避免使用其他接口。","的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。","的各个组件也是依据这个基本法设计的。在","的命令行和其他依赖工具:","的响应,响应体为:","的基础类型,供业务函数使用。//","的填充。","的字段。","的字段。忽略所有没有","的定义。","的定义以外,还提供了一些函数,帮助快速构建","的实例而不是","的客户端:","的对应关系。","的工具","的开发工作后,我们需要将","的形式。","的形式判断一个","的形式向","的形式向客户端返回,我们还需要给","的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。","的形式返回错误。但是框架会检查返回的错误是否实现了","的情况下,nirvana","的支持。","的数据来源都是来自于请求,而","的文件用于把当前的命令加入到","的方式有两种:","的方法与","的方法:","的最后一个返回值加上","的最小值为","的格式满足:","的注册方法即可注册","的版本号。下表中展示了","的用户提供一个文档,方便用户阅读。nirvana","的用途。","的用途。这个短语在生成文档和客户端的时候用于区分","的示例:","的第一个参数添加上名为","的结构体类型,会递归遍历以寻找带有","的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的","的请求都会执行这个中间件。","的调用者。这样就完成了对一个项目的","的路径上。","的运行,只用于描述项目的信息以及区分不同版本的","的返回值会作为下一个","的返回值作为","的返回值作为数据返回。","的返回值来确定是直接丢弃该请求还是继续处理。","的返回结果。","的返回结果,构建出相应的客户端和文档。golang","的配置文件在根目录的","的配置,用于创建","的错误)。","的除了","的需要的包定义文件","的顶级包,而且其依赖的所有包只来自","的项目结构如下:","的顺序。","监控指标插件","监控指标插件基于","目前","目前客户端生成对接口的支持还不完善,仅仅对","目前支持三种类型的验证,分别对应","目录下生成","目录下,则还需要运行一下命令开启","目录中就能看到编译后的二进制文件,直接运行:","目录:","直接编译运行","相关接口如下:","相关的所有定义和类型信息。api","相关类型:","真正的实例,即","种类型的","空的","端口提供服务。为了防止端口冲突,可以使用","第一种方法带有","第一种方法支持使用","等来完成业务函数的参数生成。//","等简单字符串数据转换为","类型","类型。","类型。业务函数的参数也响应的变成了","类型名称可以为空。","类型对应的参数必须是一个结构体,通过结构体的","类型是否和业务函数的参数类型一致。","类型的","类型的参数在生成文档和客户端的时候会被忽略,因此不要使用","类型转换为了","类型):","类型,因此一般不转换为具体类型。","类型,这种类型的请求通常会被","系列包","系列包包含:","系统日志插件","系统日志插件是一个伪插件。这个插件本身没有按照","级别的配置,这些配置是针对当前服务的。而对应的","结构体包含了一个具体的","结构体包含具有如下含义的字段:","结构体,可以组合成一个:","结构,然后再返回给","给项目添加一个","统一网关访问","继承的字段","编写,只是为了通过","编译并打包成","编译运行","编译运行后可以得到结果:","而不是","能转换为可读的数据结构,构建了","自动处理数据转换,nirvana","自定义验证器","自身和标准库(config","范例如下:","范例,因此可以直接运行查看效果。","获取一条消息的","获取接口实例:","获取某个实例的方法,之后再在服务启动逻辑里","获取资源","获取资源列表","表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。","要求每个插件提供一个","设置","设置为","设置接口实例:","设置服务","设置服务名称","设置服务版本号","设置服务的描述","设置监听的","设置监听的端口。","设置请求","设置路径前缀,默认值为","访问","证书和密钥。","识别的错误,但是如果业务逻辑中如果不希望引入对","该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):","该命令默认会在","详细描述这个","语言版本(version","语言版本升级到最新版本","说明了请求和响应中的数据类型。为了根据","请求。","请求中使用的都是","请求中,content","请求日志插件","请求日志插件会添加一个在","请求的","请求追踪插件","请求追踪插件基于","读取源码并进行分析,产出","调用,可以生成客户端以供使用:","负责一种类型的参数的验证和类型转换工作。","负责一种类型的返回结果的数据转换工作。","路径","路径。为空时不会进行替换。","路径前缀,匹配前缀为","路径匹配完成后,会调用匹配链的最后一个节点的","路径同等级别的字段","路径替换,因此需要正确设置版本规则。","路径默认为","路径,默认值为","路由和处理的所有功能。","转换为路由需要的数据结构,涉及到以下内容:","转换函数必须符合","输出日志如下(项目路径和日志时间会有所不同):","过滤器","过程。也就是可以在声明","返回","返回值可以是任意结构,自动转换并写入到","返回值目标","返回出去,供业务函数使用。//","返回回去。","返回服务当前是否健康。api","返回服务的版本信息。api","返回的是资源数组,所以使用","还会将","这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用","这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改","这两种方法都可以创建","这两种类型的请求体,并转换为","这个","这个主要是利用了","这个例子中,验证器要求","这个包并进行命令注册:","这个包方便了用户创建能够被","这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为","这个字段仅用于在生成文档和客户端的时候,替换匹配的","这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。","这个实例方法容器分离了方法的","这个插件暴露三个选项:","这个节点匹配剩余所有路径。","这个过滤器判断","这个过滤器只针对","这个返回值类型必须是","这个配置文件不会影响","这个项目中包含了编译和构建容器的基本工具(makefil","这套日志","这就是","这就表示文档生成成功,并且提供了一个","这是一个在","这是一个工具方法,用于快速生成一个参数结构。","这是对正则表达式的一个常用特例的优化,快速进行全匹配。","这样做有两个优势:","这样就能够非常方便的错误创建和错误判断了。","这样就能通过","这样所有客户端都在一个项目中,不需要依赖其他服务项目。","这种形式的","这里添加的业务函数都是以","进行了扩展,涉及到字段的改变,也需要在这个包中修改","进行代码检查,gometalint","进行任何更新操作。并且所有的依赖需要放置在根目录的","进行依赖管理,不要使用其他依赖管理工具对","进行修改。","进行包管理","进行包装的时候,获取正确层级的调用栈信息。","进行开发,但是需要保证两个","进行扩展,需要遵守上面这些规则。","进行描述的。首先看一个","进行注册。然后提供相应的","进行解析。","进行输出的标准实现。","进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。","进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。","选项的注释。两个选项的值对应两个函数,分别返回","通常对应于","通常情况下,我们需要快速添加一些","通常情况下,有","通过","通过具体错误的","那么","那么如果存在请求","部分,例如:","都是通过","都有一个对应的","都通过这个","都遵守","都需要去描述这个参数,那么","配置器机制","配置基本信息以外,还提供了插件机制。","配置文件名:","配置文件,用于描述项目的基本信息和结构。","采集指标数据。","里。","里取值。","里的值进行文本国际化。","里获取的。","针对请求的","链接","错误包","错误类型,必须是","镜像","限制","除了","除了使用","除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此","除了常规的","除了插件","除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。","集合上述所有功能的","需要使用","需要实现接口:","项目","项目。项目结构如下:","项目名[:模块名]:错误名","项目名称","项目描述","项目版本信息目录","项目结构和初始化","项目负责人","项目都有一个","项目配置","项目,用于保存所有服务的客户端:","风格,并且在","首先会利用","首先创建","首先将","首先看","首部有没有","验证器函数必须符合签名","默认值","默认启用的","默认情况下,nirvana","默认情况下,我们会为每个服务生成如下结构的客户端:","默认情况下,插件会添加四个","默认提供了","默认提供的","默认路径为",",然后在创建项目时添加"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"概览","keywords":"","body":"Nirvana\nNirvana 是一个着重于提高开发效率和业务解耦的 API 框架。\nNirvana 在设计上与现存的一些 golang 框架不同,它的核心目标是让业务与框架隔离。\n在这种模式下,业务不需要关心数据的传输过程和转换过程,大大降低数据传输层和转换层的复杂度。\n也就是说,业务可以完全不依赖框架。\nNirvana 的各个组件也是依据这个基本法设计的。在 Nirvana 文档中,我们将逐步介绍这些组件的使用方式以及设计理念。\n"},"guides/project.html":{"url":"guides/project.html","title":"项目结构和初始化","keywords":"","body":"项目结构和初始化\n创建项目\nNirvana 创建项目非常简单,不过在创建项目之前,首先需要下载安装 Nirvana 的命令行和其他依赖工具:\n$ go get -u github.com/caicloud/nirvana/cmd/nirvana\n$ go get -u github.com/golang/dep/cmd/dep\n然后就可以直接使用命令创建项目(请确保 $GOPATH/bin 在 $PATH 中):\n$ cd $GOPATH/src/\n$ nirvana init ./myproject\n$ cd ./myproject\n此时在 $GOPATH/src/myproject 会生成一个完整的 Nirvana 项目。项目结构如下:\n .\n├── bin # 存放编译后的二进制文件\n├── build # 存放项目的 Dockerfile 以及与构建相关的文件\n│ └── myproject # \n│ └── Dockerfile #\n├── cmd # 存放项目的启动命令\n│ └── myproject #\n│ └── main.go # \n├── Gopkg.toml #\n├── Makefile #\n├── nirvana.yaml #\n├── pkg # 所有的业务逻辑都应该在这个目录中\n│ ├── apis # 所有与 Nirvana API 定义相关的代码都在这个目录中\n│ │ ├── api.go #\n│ │ ├── filters # 存放 HTTP Request 过滤器\n│ │ │ └── filters.go #\n│ │ ├── middlewares # 存放 Nirvana 中间件\n│ │ │ └── middlewares.go #\n│ │ ├── modifiers # 存放 Nirvana Definition 修改器\n│ │ │ └── modifiers.go #\n│ │ └── v1 # 存放项目 v1 版本所有的 API 定义\n│ │ ├── converters # 存放 v1 版本需要用到的类型转换器\n│ │ ├── descriptors # 存放 v1 版本的 API 描述符\n│ │ │ ├── descriptors.go #\n│ │ │ └── message.go # 对应 message 业务逻辑的 API 定义,可以修改或删除\n│ │ └── middlewares # 存放 v1 版本需要用到的中间件\n│ │ └── middlewares.go #\n│ ├── message # 业务逻辑目录,这个目录是生成的样板,可以修改或删除\n│ │ └── message.go #\n│ └── version # 项目版本信息目录\n│ └── version.go #\n├── README.md #\n└── vendor #\n这个项目中包含了编译和构建容器的基本工具(Makefile 和 Dockefile),还有一个 golang/dep 的需要的包定义文件 Gopkg.toml。通过如下命令即可完成依赖包的安装:\n$ dep ensure -v\n到这里就完成了整个项目的创建和依赖安装工作,默认的项目结构中自带了一个 API 范例,因此可以直接运行查看效果。\n使用 go module 进行包管理\nNirvana 也提供对 go module 的支持。\n首先将 Go 语言版本升级到最新版本 ,然后在创建项目时添加 --package-manager 参数:\n$ nirvana init --package-manager mod ./myproject\n在当前 GO 语言版本(Version 1.11)中,若项目处于 $GOPATH/src 目录下,则还需要运行一下命令开启 module 功能:\n$ export GO111MODULE=on\n编译运行\n直接编译运行\nNirvana 创建项目时自动生成了 Makefile,只需要使用简单的 make 命令就可以完成编译工作:\n$ make\n在项目的 bin 目录中就能看到编译后的二进制文件,直接运行:\n$ ./bin/myproject\n启动时会打印出 Nirvana 的 Logo 以及当前项目的版本信息以及监听的端口,默认端口是 8080。\n在服务启动之后,可以通过浏览器或者命令行访问 http://localhost:8080/apis/v1/messages:\n$ curl http://localhost:8080/apis/v1/messages\n就能够看到 API 的返回结果。\n编译并打包成 Docker 镜像\n在需要发布的时候,通常需要打包成镜像的形式,在 Makefile 中也提供了直接打包成镜像的命令:\n$ make container\n就会自动开始在容器内编译和打包镜像。不过这个过程中需要 golang:latest 和 debian:jessie 这两个镜像。如果本地没有这两个镜像,或者希望使用其他镜像进行编译和构建工作,请修改 ./build/myproject/Dockerfile 。\n打包完成后,可以通过 Docker 命令启动容器,然后进行访问:\n$ docker run -p 8080:8080 myproject:v0.1.0\nNirvana 项目配置\n每个 Nirvana 项目都有一个 nirvana.yaml 配置文件,用于描述项目的基本信息和结构。\n# 项目名称\nproject: myproject\n# 项目描述\ndescription: This project uses nirvana as API framework\n# 服务使用的协议,只能填写 http 和 https\nschemes:\n- http\n# 访问 IP 或域名,可以有多个\nhosts:\n- localhost:8080\n# 项目负责人\ncontacts:\n- name: nobody\n email: nobody@nobody.io\n description: Maintain this project\n# 项目 API 版本信息,用于区分不同版本的 API\n# 用于文档和客户端生成\nversions:\n # 版本名称\n- name: v1\n # 版本描述\n description: The v1 version is the first version of this project\n # 版本规则\n rules:\n # 路径前缀,匹配前缀为 \"/apis/v1\" 的 API\n - prefix: /apis/v1\n # 正则表达式,用于匹配路径\n # 如果设置了 prefix,那么 regexp 字段无效\n regexp: \"\"\n # 这个字段仅用于在生成文档和客户端的时候,替换匹配的 API 路径。为空时不会进行替换。\n # 比如设置 replacement = \"/apis/myproject/v1\"\n # 那么 \"/apis/v1/someapi\" 为被替换为 \"/apis/myproject/v1/someapi\"\n replacement: \"\"\n\n这个配置文件不会影响 Server 的运行,只用于描述项目的信息以及区分不同版本的 API。API 文档生成和客户端生成会依赖这个配置文件进行 API 版本识别和 API 路径替换,因此需要正确设置版本规则。\n"},"guides/api.html":{"url":"guides/api.html","title":"API","keywords":"","body":"API\n概念\nNirvana Definition\n在 Nirvana 中,所有的 API 都是通过 Descriptor 和 Definition 进行描述的。首先看一个 List Messages 的 API 定义:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/apis/v1/descriptors/message.go\n\nfunc init() {\n register([]def.Descriptor{{\n // Path 定义了 API 路径\n Path: \"/messages\",\n // Definitions 数组包含了这个路径下的所有定义。\n Definitions: []def.Definition{listMessages},\n },\n }...)\n}\n\n// listMessages 定义了一个返回 Message 列表的 API\nvar listMessages = def.Definition{\n // 这个 API 返回的是资源数组,所以使用 List 方法。\n Method: def.List,\n // Summary 是一个短语,用于描述这个 API 的用途。这个短语在生成文档和客户端的时候用于区分 API。\n // 这个字符串去掉空格后会作为生成客户端时的函数名,因此请确保这个字符串是有意义的。\n Summary: \"List Messages\",\n // 详细描述这个 API 的用途。\n Description: \"Query a specified number of messages and returns an array\",\n // 业务函数\n Function: message.ListMessages,\n // 对应业务函数的参数信息。用于告知 Nirvana 从请求的那一部分取得数据,然后传递给业务函数。\n Parameters: []def.Parameter{\n {\n // 参数来源\n Source: def.Query,\n // 参数名称,作为 key 从 Source 里取值。\n // 与业务函数的参数名称无关。\n Name: \"count\",\n // 默认值\n Default: 10,\n // 参数描述 \n Description: \"Number of messages\",\n },\n },\n // 对应业务函数的返回结果。用于告知 Nirvana 业务函数返回结果如何放到请求的响应中。\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n根据上面的 API 定义,再对应业务函数:\n// 在使用 nirvana init 创建的标准项目结构中,这个文件位于 pkg/message/message.go\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n可以看到,业务函数既不关心参数的来源和类型转换,也不关心如何将返回值写到响应里,只是按照业务需求实现逻辑。\nDefinition Method\n在 Nirvana 中,我们建议所有的 API 都遵守 RESTful 风格,并且在 URL 中携带 API 的版本号。下表中展示了 Nirvana 中定义的动作以及对应的 API 定义。\n\n\n\nNirvana 方法\nHTTP 方法\nHTTP 成功状态码\nURL\n描述\n\n\n\n\nList\nGET\n200\n/apis/v1/resources\n获取资源列表\n\n\nGet\nGET\n200\n/apis/v1/resources/{resource}\n根据资源唯一 ID/Name 获取资源\n\n\nCreate\nPOST\n201\n/apis/v1/resources\n创建一个资源(非幂等)\n\n\nUpdate\nPUT\n200\n/apis/v1/resources/{resource}\n更新一个资源(幂等)\n\n\nPatch\nPATCH\n200\n/apis/v1/resources/{resource}\n修改一个资源的部分内容\n\n\nDelete\nDELETE\n204\n/apis/v1/resources/{resource}\n删除一个资源\n\n\nAsyncCreate\nPOST\n202\n/apis/v1/resources\n异步创建资源\n\n\nAsyncUpdate\nPUT\n202\n/apis/v1/resources/{resource}\n异步更新资源\n\n\nAsyncPatch\nPATCH\n202\n/apis/v1/resources/{resource}\n异步修改资源部分内容\n\n\nAsyncDelete\nDELETE\n202\n/apis/v1/resources/{resource}\n异步删除资源\n\n\n\n对于 Nirvana 异步方法,发出后服务端应当只是将请求加入执行队列,然后立刻返回一个关联的对象或者链接,供客户端后续查询请求执行状态。\n所有的 Nirvana 方法都是语义层面的,为的是提高 API 定义的可读性。也就是说 List 和 Get 在一个 HTTP 请求中使用的都是 GET,两者没有区别。\n但是为了使 API 定义更加明确,我们应该根据场景确定使用哪个 Nirvana 方法。比如某个 API 是返回一个资源列表的,那么 Nirvana 方法就应该是 List 而不是 Get。\nDefinition Source\nDefinition Source 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n参数来源\n名称\n描述\n\n\n\n\nPath\n有\n参数值来源于 API Path\n\n\nQuery\n有\n参数值来源于 URL Query\n\n\nHeader\n有\n参数值来源于 Request Header\n\n\nForm\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 application/x-www-form-urlencoded 或 multipart/form-data\n\n\nFile\n有\n参数值来源于 Request Body,但是 Content-Type 必须是 multipart/form-data\n\n\nBody\n无\n参数值来源于 Request Body\n\n\nAuto\n无\nAuto 类型对应的参数必须是一个结构体,通过结构体的 tag 定义来确定每个字段的来源\n\n\nPrefab\n有\n参数值来源于当前 server 内部,比如一个 DB 链接\n\n\n\nAuto 类型的 tag 范例如下:\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n}\n\ntag 名称为 source。值使用逗号分隔,第一个参数表示参数来源,第二个表示名称。如果是 Body 类型名称可以为空。\n如果需要给字段设置默认值,则需要使用 default={value} 的形式。 \n如果有多个 Auto 结构体,可以组合成一个:\ntype AnotherAutoStruct struct {\n ...\n}\n\ntype Example struct {\n Start int `source:\"Query,start,default=100\"`\n ContentType string `source:\"Header,Content-Type\"`\n AnotherAutoStruct\n}\n\n对于没有 source 的结构体类型,会递归遍历以寻找带有 source 的字段。忽略所有没有 source 的字段。\nDefinition Destination\nDefinition Destination 用于描述一个业务函数的参数的来源和默认值。\n\n\n\n返回值目标\n描述\n\n\n\n\nMeta\n这个返回值类型必须是 map[string]string,会写入 Response Header\n\n\nData\n返回值可以是任意结构,自动转换并写入到 Response Body\n\n\nError\n错误类型,必须是 error\n\n\n\n给项目添加一个 API\n接下来我们给项目增加一个 API,用于获取一条消息:\nfunc init() {\n register([]def.Descriptor{{\n Path: \"/messages\",\n Definitions: []def.Definition{listMessages},\n }, {\n // 获取一条消息的 Descriptor。\n Path: \"/messages/{message}\",\n Definitions: []def.Definition{getMessage},\n },\n }...)\n}\n\n// 获取一条消息的 API 定义。\nvar getMessage = def.Definition{\n // 因为只获取一条消息,此处为 Get。\n Method: def.Get,\n Summary: \"Get Message\",\n Description: \"Get a message by id\",\n // 业务函数\n Function: message.GetMessage,\n Parameters: []def.Parameter{\n // 这是一个工具方法,用于快速生成一个参数结构。\n // message 是从 API Path 里获取的。\n def.PathParameterFor(\"message\", \"Message id\"),\n },\n Results: def.DataErrorResults(\"A message\"),\n}\n\n对应的业务函数如下:\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n添加 API 之后,编译运行。然后访问 http://localhost:8080/apis/v1/messages/100,即可获得结果(默认情况下都是 json 类型):\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n这里添加的业务函数都是以 Golang 函数的方式呈现的。如果希望使用实例方法作为业务的处理函数,请参考 方法包。\n"},"guides/doc.html":{"url":"guides/doc.html","title":"生成 API 文档","keywords":"","body":"生成 API 文档\n在完成了 API 的开发工作后,我们需要将 API 公开给用户使用。于是我们需要给 API 的用户提供一个文档,方便用户阅读。Nirvana 提供了一个命令用于从项目中生成文档:\n$ nirvana api --serve=\":8081\"\n默认情况下,nirvana api 会读取 pkg/apis 并使用 8080 端口提供服务。为了防止端口冲突,可以使用 --serve 设置监听的 IP 和端口。\n该命令不会退出,并且会输出如下日志(项目路径和日志时间会有所不同):\nINFO 0702-15:47:52.010+08 api.go:87 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:47:53.499+08 api.go:95 | Project root directory is /home/go/src/myproject\nINFO 0702-15:47:53.500+08 api.go:179 | Listening on 127.0.0.1:8081. Please open your browser to view api docs\n这就表示文档生成成功,并且提供了一个 HTTP 服务用于访问这个文档。打开浏览器,访问 http://127.0.0.1:8081 即可查看文档。\n文档截图如下:\n\n"},"guides/client.html":{"url":"guides/client.html","title":"生成客户端","keywords":"","body":"生成客户端\n生成代码\nAPI 文档通常足够使用者使用。但是在微服务场景下,服务之间也会存在调用关系。因此需要使调用者方便快速的进行 API 调用,可以生成客户端以供使用:\n$ nirvana client\n该命令默认会在 ./client 目录下生成 golang 客户端代码,可以通过 --output 指定其他输出目录(目前仅支持生成 golang 客户端,其他语言客户端尚不支持)。\n输出日志如下(项目路径和日志时间会有所不同):\nINFO 0702-15:50:54.156+08 client.go:73 | No packages are specified, defaults to pkg/apis\nINFO 0702-15:50:55.609+08 client.go:81 | Project root directory is /home/go/src/myproject\nINFO 0702-15:50:55.610+08 client.go:106 | Generated golang client package myproject/client\n生成的客户端代码如下:\nclient\n├── client.go\n└── v1\n ├── client.go\n └── types.go\n./client.go 生成代码:\npackage client\n\nimport (\n v1 \"myproject/client/v1\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a versioned client.\ntype Interface interface {\n // V1 returns v1 client.\n V1() v1.Interface\n}\n\n// Client contains versioned clients.\ntype Client struct {\n v1 *v1.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (Interface, error) {\n c := &Client{}\n var err error\n\n c.v1, err = v1.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) Interface {\n return &Client{\n v1: v1.MustNewClient(cfg),\n }\n}\n\n// V1 returns a versioned client.\nfunc (c *Client) V1() v1.Interface {\n return c.v1\n}\n\n./v1/client.go 生成代码\npackage v1\n\nimport (\n \"context\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes v1 client.\ntype Interface interface {\n // GetMessage return a message by id.\n GetMessage(ctx context.Context, message int) (message1 *Message, err error)\n // ListMessages returns all messages.\n ListMessages(ctx context.Context, count int) (messages []Message, err error)\n}\n\n// Client for version v1.\ntype Client struct {\n rest *rest.Client\n}\n\n// NewClient creates a new client.\nfunc NewClient(cfg *rest.Config) (*Client, error) {\n client, err := rest.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n return &Client{client}, nil\n}\n\n// MustNewClient creates a new client or panic if an error occurs.\nfunc MustNewClient(cfg *rest.Config) *Client {\n client, err := NewClient(cfg)\n if err != nil {\n panic(err)\n }\n return client\n}\n\n// GetMessage return a message by id.\nfunc (c *Client) GetMessage(ctx context.Context, message int) (message1 *Message, err error) {\n message1 = new(Message)\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages/{message}\").\n Path(\"message\", message).\n Data(message1).\n Do(ctx)\n return\n}\n\n// ListMessages returns all messages.\nfunc (c *Client) ListMessages(ctx context.Context, count int) (messages []Message, err error) {\n err = c.rest.Request(\"GET\", 200, \"/apis/v1/messages\").\n Query(\"count\", count).\n Data(&messages).\n Do(ctx)\n return\n}\n\n./v1/types.go 生成代码:\npackage v1\n\n// Message describes a message entry.\ntype Message struct {\n ID int `json:\"id\"`\n Title string `json:\"title\"`\n Content string `json:\"content\"`\n}\n\n生成的客户端是版本化的,版本在 nirvana.yaml 中定义。API 依赖的结构体都会被提取出来并生成到 types.go 文件中,方便客户端使用。\n每个服务都可以生成一份客户端,为了方便使用,可以将客户端整合在一起。具体内容请参考 多客户端整合。\n使用客户端\n客户端的使用非常简单,只需要创建客户端,然后调用相应的 API 函数即可:\nfunc main() {\n cli := client.MustNewClient(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n限制\n目前客户端生成对接口的支持还不完善,仅仅对 io.Reader 和 io.ReadCloser 支持良好,因此在 API 的参数和返回值中,尽量避免使用其他接口。\n"},"concepts/cp.html":{"url":"concepts/cp.html","title":"Consumer && Producer","keywords":"","body":"Consumer and Producer\n包路径: github.com/caicloud/nirvana/service\n在 HTTP 请求中,Content-Type 说明了请求和响应中的数据类型。为了根据 Content-Type 自动处理数据转换,Nirvana 提供了 Consumer 和 Producer 接口。其中 Consumer 用于将请求体中的数据转换为业务函数需要的类型,而 Producer 则负责将业务函数的返回结果写入到响应体中。 \nNirvana 默认提供的 Consumers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 GET 之类的请求,因此不能转换为任何数据类型。\n\n\ntext/plain\n只能生成 string 和 []byte 类型\n\n\napplication/json\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 json.Unmarshal 进行解析。\n\n\napplication/xml\n如果接收类型是 string 和 []byte,则直接将数据转换为这两个类型。对于其他类型,使用 xml.Unmarshal 进行解析。\n\n\napplication/octet-stream\n只能生成 string 和 []byte 类型\n\n\napplication/x-www-form-urlencoded\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 类型,因此一般不转换为具体类型。\n\n\nmultipart/form-data\n只能生成 string 和 []byte 类型,这种类型的请求通常会被 Parse 并成为 Form 或 File 类型,因此一般不转换为具体类型。\n\n\n\nNirvana 默认提供的 Producers:\n\n\n\nContent-Type\n描述\n\n\n\n\n\n空的 Content-Type 通常对应于 204 之类的响应,没有响应体,不需要写入。\n\n\ntext/plain\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\napplication/json\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 json.Marshal 将数据写入到响应。\n\n\napplication/xml\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。如果是其他类型,则使用 xml.Marshal 将数据写入到响应。\n\n\napplication/octet-stream\n如果类型符合 io.Reader 接口或者是 string 和 []byte,则直接将数据写入到响应。\n\n\n\n添加 Consumer 和 Producer\n在业务的实际场景中,默认提供的 Consumers 和 Producers 可能不能满足实际使用需求。因此 Nirvana 的 service 包提供了相应的工具用于注册用户自己的 Consumer 和 Producer。\n注册 Consumer\nConsumer 需要实现接口:\n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Consumer:\nif err := service.RegisterConsumer(consumer); err != nil {\n log.Fatal(err)\n}\n\n在接收到 Content-Type 与 consumer 一致的请求,并且业务函数需要从请求中取得请求体的时候,就会调用这个 Consumer 去读取数据并进行类型转换。\n注册 Producer\nProducer 需要实现接口:\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n实现了这个接口后,通过 service 的注册方法即可注册 Producer:\nif err := service.RegisterProducer(producer); err != nil {\n log.Fatal(err)\n}\n\n在需要生成 Conetent-Type 于 producer 一致的响应,并且业务函数需要返回数据的时候,就会调用这个 producer 将类型转换为字节数据写入到响应体中。\n快速生成 Consumer 和 Producer 的工具\n通常情况下,我们需要快速添加一些 Consumers 和 Producers,并且他们的行为和 application/octet-stream 一致的时候,那么可以直接使用工具方法:\nserializer := NewSimpleSerializer(contentType)\n\nif err := service.RegisterConsumer(serializer); err != nil {\n log.Fatal(err)\n}\n\nif err := service.RegisterProducer(serializer); err != nil {\n log.Fatal(err)\n}\n\n"},"concepts/operator.html":{"url":"concepts/operator.html","title":"Operator","keywords":"","body":"Operator\n包路径: github.com/caicloud/nirvana/definition\n在每个 API Definition 中,都有一组 Parameters 和 Results。其中 Parameters 和业务函数的参数一一对应,而 Results 则和业务函数的返回值一一对应。一般情况下,如果我们需要对参数的合法性和结构进行验证和转换,那么就需要在业务函数中实现这些功能。为了让数据验证和结构转换等逻辑更加通用化和标准化,Nirvana 提供了 Operator 接口,可用于针对单个参数或返回值进行验证和修改:\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n在没有 Operator 的情况下,Nirvana 从业务函数的参数中确定数据类型,并将请求数据转换为这个类型。但是如果设置了 Operator,那么 Nirvana 会从第一个 Operator 的 In() 方法获取类型,\n并且会检查最后一个 Operator 的 Out() 类型是否和业务函数的参数类型一致。\n在实际的使用过程中,并不需要实现这个复杂的接口。Nirvana 提供了两种类型的 Operator:Validator 和 Converter。\nValidator\n包路径: github.com/caicloud/nirvana/operators/validator\nvalidator 包的实现基于 go-playground/validator,提供了用于生成 Operator 的方法:\nfunc Struct(instance interface{}) Validator\nfunc String(tag string) Validator\nfunc Int(tag string) Validator\nfunc Int64(tag string) Validator\nfunc Int32(tag string) Validator\nfunc Int16(tag string) Validator\nfunc Int8(tag string) Validator\nfunc Byte(tag string) Validator\nfunc Uint(tag string) Validator\nfunc Uint64(tag string) Validator\nfunc Uint32(tag string) Validator\nfunc Uint16(tag string) Validator\nfunc Uint8(tag string) Validator\nfunc Bool(tag string) Validator\n\n对于结构体类型,在需要的字段上添加名为 validate 的 tag。\n自定义验证器\n有时候默认的验证器不能覆盖复杂的验证需求,因此 validator 包还提供了方法用于创建自定义验证器:\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n验证器函数必须符合签名 func(ctx context.Context, object AnyType) error。其中 AnyType 是具体要验证的类型,不能使用接口。\nConverter\n包路径: github.com/caicloud/nirvana/operators/converter\n除了对参数进行验证以外,在某些场景下还需要对参数进行类型转换。因此 converter 包提供了工具方法用于将转换函数包装成 Operator:\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter\n\n转换函数必须符合 func f(context.Context, string, AnyType) (AnyType, error)。其中参数的 AnyType 和返回值的 AnyType 可以不同。\n在 Definition 中使用 Operator\n这是一个在 List Messages 的 API 中添加 Operator 的示例:\n// Definition\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: message.ListMessages,\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Operators: []def.Operator{\n validator.Int(\"min=1\"),\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n },\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n// 业务函数\n// ListMessages returns all messages.\nfunc ListMessages(ctx context.Context, count uint) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \n这个例子中,验证器要求 count 的最小值为 1,并且把 int 类型转换为了 uint 类型。业务函数的参数也响应的变成了 uint 类型。\n注意:Operator 是链式调用的,也就是说上一个 Operator 的返回值会作为下一个 Operator 的参数。因此如果将验证器和转换器的顺序调换,则需要将验证器的类型修改为转换器返回的类型:\nOperators: []def.Operator{\n converter.For(func(ctx context.Context, field string, value int) (uint, error) {\n return uint(value), nil\n }),\n validator.Uint(\"min=1\"),\n},\n\n但是一般情况下,始终建议验证器放在前面,转换器放在后面。\n"},"concepts/filter.html":{"url":"concepts/filter.html","title":"Filter","keywords":"","body":"过滤器\n包路径: github.com/caicloud/nirvana/service\n在某些场景下,我们需要从源头对请求进行处理和过滤。Nirvana 提供了 Filter 机制,可以在收到一个请求的时候,立刻进行处理。并根据 Filter 的返回值来确定是直接丢弃该请求还是继续处理。\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nFilter 在整个 Nirvana 框架中处于最高优先级。Filter 返回 false 则表示请求不应该被继续处理,立刻丢弃。\nNirvana 提供的一些 Filters\nRedirectTrailingSlash\n这个过滤器判断 URL Path 尾部是不是存在 /,如果存在就重定向到没有 / 的路径上。\nFillLeadingSlash\n这个过滤器判断 URL Path 首部有没有 /,如果没有就加上 /。\nParseRequestForm\n这个过滤器只针对 application/x-www-form-urlencoded 和 multipart/form-data,然后 Parse 这两种类型的请求体,并转换为 Form 和 File。\n"},"concepts/prefab.html":{"url":"concepts/prefab.html","title":"Prefab","keywords":"","body":"Prefab\n包路径: github.com/caicloud/nirvana/service\nPrefab 是 Nirvana 中一类特殊的 Source。其他的 Source 的数据来源都是来自于请求,而 Prefab 来自于服务端本身。\n// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n可以通过 service 包的 RegisterPrefab() 注册需要的 Prefab。\nPrefab 类型的参数在生成文档和客户端的时候会被忽略,因此不要使用 Prefab 从请求中获取数据。\nNirvana 提供的 Prefab\nContextPrefab\nContextPrefab 是 Nirvana 中实现的唯一一个 Prefab,即 service.ContextPrefab。这个 Prefab 将框架传递给它的与请求绑定的 context 返回回去。\n使用方法如下:\nvar someAPI = def.Definition{\n ...\n Parameters: []def.Parameter{\n ...\n {\n Source: def.Prefab,\n Name: \"context\",\n },\n ...\n },\n ...\n}\n\n只需要将业务函数对应位置的 Parameter 设置为 Prefab,名称为 context 即可。\n但是一般情况下,我们不应该这样使用 ContextPrefab。请参考 Modifier 和 Context\n"},"concepts/modifier.html":{"url":"concepts/modifier.html","title":"Modifier","keywords":"","body":"Modifier\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,每一个 API 都有一个对应的 Definition。在我们实际开发过程中,经常会要求 API 和 业务函数有一致的行为表现。比如每个业务函数的第一个参数都是 Context。在这种场景下,如果每个 Definition 都需要去描述这个参数,那么 Definition 会显得非常冗余。因此 Nirvana 提供了 Definition Modifer 机制,允许在 Definition 生效之前,对 Definition 进行修改。\n这样就能通过 Modifier 完成 Definition 公共部分的构建,而每个 Definition 实际上要填写的部分就是只与自身业务相关的信息。Modifier 如下:\ntype DefinitionModifier func(d *definition.Definition)\n\nNirvana 提供的 Modifiers\n在使用 nirvana init 创建的项目中,可以在 pkg/apis/modifiers 下查看启用的 Modifiers。 \n默认启用的 Modifiers 包括:FirstContextParameter,ConsumeAllIfConsumesIsEmpty,ProduceAllIfProducesIsEmpty,ConsumeNoneForHTTPGet,ConsumeNoneForHTTPDelete,ProduceNoneForHTTPDelete。\nFirstContextParameter\n这个 Modifier 为所有 Definition 的第一个参数添加上名为 context 的 Prefab。启用之后,所有业务函数的第一个参数必须是 context.Context。\nConsumeAllIfConsumesIsEmpty\n这个 Modifier 为所有 Consumes 为空的 Definition 加上 */*。\nProduceAllIfProducesIsEmpty\n这个 Modifier 为所有 Produces 为空的 Definition 加上 */*。\nConsumeNoneForHTTPGet\n这个 Modifier 为所有 HTTP GET 类型的 Definition 加上空的 Consumer,即允许请求体为空。\nProduceNoneForHTTPDelete\n这个 Modifier 为所有 HTTP Delete 类型的 Definition 加上空的 Producer,即允许响应体为空。\nLastErrorResult\n这个 Modifier 为所有的 Definition 的最后一个返回值加上 definition.Error。\n"},"concepts/middleware.html":{"url":"concepts/middleware.html","title":"Middleware","keywords":"","body":"中间件\n包路径: github.com/caicloud/nirvana/definition\nNirvana 中间件位于路由之后,业务函数执行之前。因此中间件可以对合法的请求进行一些额外的处理。中间件的接口如下: \n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n一个请求在路由匹配成功后,就会进入执行过程。执行时会先执行匹配到的所有中间件,并由中间件通过 Chain 进行链式调用。也就是说任何一个中间件都可以决定请求是否继续执行。\n中间件添加在 Descriptor 中:\ndef.Descriptor{\n Path: \"/path\",\n Middlewares: []def.Middleware{SomeMiddleware},\n}\n\n添加成功后,所有前缀匹配 /path 的请求都会执行这个中间件。\n注意:只有在路由找到了请求的业务函数的情况下,才算匹配成功。没有匹配成功的情况下,中间件不会执行。\n中间件执行顺序\n如果以下路径都添加了中间件:\n1. /\n2. /path\n3. /path/path2\n\n那么如果存在请求 /path/path2/others 且成功匹配的情况下,中间件的执行按照 1 -> 2 -> 3 的顺序。\n中间件只与 URL Path 有关,因此如果多个 Descriptor 中为相同的路径添加了多个中间件,在路径匹配的情况下,这些中间件都会被执行,但是执行顺序不能确定。因此开发中间件时不要依赖中间件的执行顺序。\n"},"concepts/context.html":{"url":"concepts/context.html","title":"Context","keywords":"","body":"Context\n包路径: github.com/caicloud/nirvana/service\n在 Nirvana 中,Context 用于传递请求的上下文。Context 中包含 HTTP 的 Request 和 ResponseWriter。可是使用 service 包的 HTTPContextFrom() 方法获得 HTTP Context。HTTP Context 相关接口如下:\n// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\nNirvana 框架会为每个请求构建这样的 HTTPContext。如有必要,可以通过这些接口拿到与请求相关的所有数据。\n在一个请求路由匹配成功后,Nirvana 会把对应的 HTTPContext 传递给中间件,然后由中间件调用链继续传递。最终经由 ContextPrefab 传递给业务函数。\n中间件不应该修改 HTTPContext,除非您明确知道如何修改。\n"},"concepts/source.html":{"url":"concepts/source.html","title":"Parameter Generator","keywords":"","body":"Parameter Generator\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 8 种类型的 Source:Path,Query,Header,Form,File,Body,Auto,Prefab。\n每种 Source 对应一个 Generator。这些 Generator 负责一种类型的参数的验证和类型转换工作。\n// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n如果 Nirvana 默认提供的 Generator 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Generator:\n// RegisterParameterGenerator register a generator.\nfunc RegisterParameterGenerator(generator ParameterGenerator) error\n\n"},"concepts/destination.html":{"url":"concepts/destination.html","title":"Destination Handler","keywords":"","body":"Destination Handler\n包路径: github.com/caicloud/nirvana/service\nNirvana 默认提供了 3 种类型的 Destination:Meta,Data,Error。\n每种 Destination 对应一个 Handler。这些 Handler 负责一种类型的返回结果的数据转换工作。\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n如果 Nirvana 默认提供的 Handler 不能满足实际的业务需求,可以通过 service 包提供的方法注册自定义的 Handler:\n// RegisterDestinationHandler registers a type handler.\nfunc RegisterDestinationHandler(handler DestinationHandler) error\n\nDefinition Handler 存在优先级,优先级高的 Handler 先执行。并且执行之后会返回 goon,用来确定是否需要执行下一个 Handler。\n"},"concepts/error.html":{"url":"concepts/error.html","title":"错误包","keywords":"","body":"错误包\n包路径: github.com/caicloud/nirvana/errors\nError 介绍\n在业务函数中,除了正常的返回数据以外,还需要处理各种错误。在 golang 中,错误需要实现 error 接口。即:\ntype error interface {\n Error() string\n}\n\n这种形式的 error 接口只能返回一个特定的字符串,而不能携带更多的关于错误的信息。因此 Nirvana 对于这种错误,都会以 500 Internal Server Error 的形式返回给客户端。但是通常情况下,业务为了区分不同的错误,会使用错误码和错误字符串来共同标识一个错误,方便客户端识别。\n于是 Nirvana 提供了一个新的接口:\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\n在业务函数中,仍然以 error 的形式返回错误。但是框架会检查返回的错误是否实现了 Error 接口。如果实现了,就会以 Code() 的返回值作为 HTTP 状态码,Message() 的返回值作为数据返回。\nerrors 包\n为了方便使用,Nirvana 提供了 errors 包用于生成 error。创建 error 的方式有两种:\n\n方法一\n\nvar somethingNotCorrect = errors.BadRequest.Build(\"ProjectName:ModuleName:SomethingNotCorrect\", \"${name} is not correct\")\n\nfunc SomeFunction() error {\n // Do something\n return somethingNotCorrect.Error(something.Name)\n}\n\n\n方法二\n\nfunc SomeFunction() error {\n return errors.BadRequest.Error(\"${name} is not correct\", something.Name)\n}\n\n这两种方法都可以创建 error,但是第一种方法比第二种多出更多特性:\n\n第一种方法支持使用 somethingNotCorrect.Derived(err) 的形式判断一个 err 是否由这个错误工厂生成。\n第一种方法带有 Reason,方便客户端判断错误类型。\n\n因此我们建议始终使用第一种方法进行错误的创建。只有在错误仅在内部使用,而且不需要进行错误判断的情况下,为了简化错误创建的过程,可以使用第二种方法。\nerror 的 Reason\n在实际的业务中,HTTP 状态码并不足以表达业务中繁复的错误。因此我们将 HTTP 状态码视为错误大类(比如 NotFound 表示资源不存在或者找不到),然后在大类下定义业务需要的具体错误。\n这样做有两个优势:\n\n通过 HTTP 状态码即可大致判断一个错误的行为\n通过具体错误的 Reason 来唯一确定一个错误\n\n在常见的商业 API 中,我们也经常看到使用数字 ID 来标志的错误。但是数字 ID 的表达性很差,而且全局唯一性比较难维护。因此我们使用字符串作为错误的 ID,也就是 Reason。\n我们建议 Reason 的格式满足:\n项目名[:模块名]:错误名\n国际化\n使用 errors 包生成的错误会记录每个占位符的名称和值,保存在 data 字段中,可以在客户端使用 data 里的值进行文本国际化。\n使用范例\n在业务函数中使用 errors:\n\nvar messageNotExist = errors.NotFound.Build(\"MyProject:Message:MessageNotExist\", \"there is no message with id ${id}\")\n\n// GetMessage return a message by id.\nfunc GetMessage(ctx context.Context, id int) (*Message, error) {\n if id > 100 {\n return nil, messageNotExist.Error(id)\n }\n return &Message{\n ID: id,\n Title: \"This is an example\",\n Content: \"Example content\",\n }, nil\n}\n\n编译运行后可以得到结果:\n访问 curl http://localhost:8080/apis/v1/messages/100,即可得到一个 200 的响应,响应体为:\n{\"id\":100,\"title\":\"This is an example\",\"content\":\"Example content\"}\n访问 curl http://localhost:8080/apis/v1/messages/101,即可得到一个 404 的响应,响应体为:\n{\"reason\":\"MyProject:Message:MessageNotExist\",\"message\":\"there is no message with id 101\",\"data\":{\"id\":\"101\"}}\n"},"concepts/method.html":{"url":"concepts/method.html","title":"方法包","keywords":"","body":"方法包\n包路径: github.com/caicloud/nirvana/definition/method\n在 Nirvana 中,业务函数是 API 请求的 Handler,而且表现形式是函数或者同等形式的闭包。但是很多时候我们的业务函数可能是某个实例的方法。\n为了保证业务与 API 定义的无关性,Nirvana 提供了 method 包,用于分离实例的创建和 API 定义。\nAPI 定义:\nvar listMessages = def.Definition{\n Method: def.List,\n Summary: \"List Messages\",\n Description: \"Query a specified number of messages and returns an array\",\n Function: method.Get(&message.Container{}, \"ListMessages\"),\n Parameters: []def.Parameter{\n {\n Source: def.Query,\n Name: \"count\",\n Default: 10,\n Description: \"Number of messages\",\n },\n },\n Results: def.DataErrorResults(\"A list of messages\"),\n}\n\n业务方法:\n// Container contains example title and content of messages.\ntype Container struct {\n Title string\n Content string\n}\n\n// NewContainer creates Container\nfunc NewContainer(title, content string) *Container {\n return &Container{title, content}\n}\n\n// ListMessages returns all messages.\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error) {\n messages := make([]Message, count)\n for i := 0; i \nmain.go 中创建实例并通过 Put() 函数放到方法容器中(需要在服务启动之前完成):\nmethod.Put(message.NewContainer(\"Method Example\", \"Method Content\"))\n\n然后编译运行,访问 http://localhost:8080/apis/v1/messages 即可得到返回结果:\n[{\"id\":0,\"title\":\"Method Example 0\",\"content\":\"Method Content 0\"},{\"id\":1,\"title\":\"Method Example 1\",\"content\":\"Method Content 1\"},{\"id\":2,\"title\":\"Method Example 2\",\"content\":\"Method Content 2\"},{\"id\":3,\"title\":\"Method Example 3\",\"content\":\"Method Content 3\"},{\"id\":4,\"title\":\"Method Example 4\",\"content\":\"Method Content 4\"},{\"id\":5,\"title\":\"Method Example 5\",\"content\":\"Method Content 5\"},{\"id\":6,\"title\":\"Method Example 6\",\"content\":\"Method Content 6\"},{\"id\":7,\"title\":\"Method Example 7\",\"content\":\"Method Content 7\"},{\"id\":8,\"title\":\"Method Example 8\",\"content\":\"Method Content 8\"},{\"id\":9,\"title\":\"Method Example 9\",\"content\":\"Method Content 9\"}]\nmethod 包介绍\nmethod 包是一个全局实例容器,每种类型对应一个实例。\n具体实例类型\n使用具体实例类型是一种比较常见的情况,比如上面的例子中提到的 *message.Container 实例。\n其中 Put(ins insterface{}) 函数用于将一个实例放置到全局容器中,形成 类型-实例 的对应关系。\nGet(typIns interface{}, method string) 用于生成一个匿名函数,生成的函数的签名没有方法的 receiver 部分,例如:\nfunc (m *Container) ListMessages(ctx context.Context, count int) ([]Message, error)\n生成匿名函数:\nfunc (ctx context.Context, count int) ([]Message, error)\n但是匿名函数的执行部分在创建时是不确定的,只有等到这个匿名函数第一次被调用的时候,才会去全局实例容器里找到对应类型的实例,然后调用指定的方法。\n这就是 Get() 函数的实例延迟加载特性。一旦延迟加载完成后,之后即使全局实例容器里的实例发生改变,匿名函数仍然会调用旧的实例的方法。如果加载时对应的类型没有实例,则会 panic。\n注意,Get() 函数的第一个参数仅仅用于获取类型,其实例值没有任何意义。因此不需要给这个实例的任何字段设置值。也就是说 &Container{} 和 (*Container)(nil) 是一样的。\n接口实例类型\n除了直接使用具体的类型以外,还支持使用接口类型。和具体类型的区别只是需要明确的指定接口类型的指针。\n设置接口实例:\nmethod.PutInterface((*ArbitraryInterface)(nil), instance)\n\n获取接口实例:\nmethod.Get((*ArbitraryInterface)(nil), \"MethodName\")\n\n"},"concepts/configurer.html":{"url":"concepts/configurer.html","title":"配置器机制","keywords":"","body":"配置器机制\n包路径: github.com/caicloud/nirvana\nNirvana 在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。\nNirvana 的 Config 实现了 Configurer 机制,用于单独配置每一项信息:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config {\n ...\n}\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\nNirvana 提供的 Configurers\nIP(ip string) Configurer\n设置监听的 IP 地址。\nPort(port uint16) Configurer\n设置监听的端口。\nTLS(certFile, keyFile string) Configurer\n设置 TLS 证书和密钥。\nLogger(logger log.Logger) Configurer\n设置 Server 在运行过程中使用的 Logger,用于输出错误。\nFilter(filters ...service.Filter) Configurer\n添加 Filter。\nModifier(modifiers ...service.DefinitionModifier) Configurer\n添加 Modifier。\nDescriptor(descriptors ...definition.Descriptor) Configurer\n添加 API 描述。所有的 API 都通过这个 Configurer 添加到 Nirvana 的 Server 里。\n"},"concepts/plugin.html":{"url":"concepts/plugin.html","title":"插件机制","keywords":"","body":"插件机制\nNirvana 的 Config 除了使用 Configurer 配置基本信息以外,还提供了插件机制。\n插件接口:\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n插件实现了这个接口之后,即可通过 nirvana 包提供的方法进行注册:\nfunc RegisterConfigInstaller(ci ConfigInstaller)\n\n一般情况下,插件应该通过插件 package 的 init() 进行注册。然后提供相应的 Configurer 在 Nirvana 的 Config 中添加插件配置。\nPlugin Framework\n一个基本的插件框架如下:\nfunc init() {\n // Register your config installer into nirvana.\n nirvana.RegisterConfigInstaller(&pluginInstaller{})\n}\n\n// ExternalConfigName is the external config name for your plugin. Please ensure that the\n// name is unique and won't conflict with other plugins.\nconst ExternalConfigName = \"pluginName\"\n\ntype pluginInstaller struct{}\n\n// Name is the external config name.\nfunc (i *pluginInstaller) Name() string {\n return ExternalConfigName\n}\n\n// Install installs config to builder. You can get plugin config from nirvana config. Then\n// install/initialize what you need.\nfunc (i *pluginInstaller) Install(builder service.Builder, cfg *nirvana.Config) error {...}\n\n// Uninstall uninstalls stuffs after server terminating.\nfunc (i *pluginInstaller) Uninstall(builder service.Builder, cfg *nirvana.Config) error {...)\n\n// ConfigA configures fieldA. Be careful, you should get/save plugin config into nirvana config\n// by `c.Config(ExternalConfigName)`/`c.Set(ExternalConfigName, cfg)` rather than a global\n// plugin config.\nfunc ConfigA(fieldA FieldType) nirvana.Configurer {...}\n\n// ConfigB configures fieldB.\nfunc ConfigB() nirvana.Configurer {...}\n\n// Disable returns a configurer to disable current plugin for a certain nirvana server.\nfunc Disable() nirvana.Configurer {\n return func(c *nirvana.Config) error {\n // Set to nil will delete plugin config from nirvana config.\n c.Set(ExternalConfigName, nil)\n return nil\n }\n}\n\n"},"concepts/clients.html":{"url":"concepts/clients.html","title":"多客户端整合","keywords":"","body":"多客户端整合\n默认情况下,我们会为每个服务生成如下结构的客户端:\nclient\n├── client.go\n├── v1\n│ ├── client.go\n│ └── types.go\n└── v2\n\n在微服务的场景下,会生成大量的客户端,直接导致用户在使用客户端时引用各种各样的项目。为了解决这个问题,可以建立一个综合项目,然后将所有服务的客户端生成到该项目中:\nclientset\n├── svca\n│ ├── client.go\n│ ├── v1\n│ │ ├── client.go\n│ │ └── types.go\n│ └── v2\n└── svcb\n ├── client.go\n ├── v1\n │ ├── client.go\n │ └── types.go\n └── v2\n整合客户端\n为了演示这个过程,我们逐步构建这个项目。\n创建项目\n首先创建 clientset 项目,用于保存所有服务的客户端:\n$ cd $GOPATH/src/\n$ mkdir clientset\n然后创建两个服务项目(仅用于演示):\n$ nirvana init svca\n$ nirvana init svcb\n即创建了 svca 和 svcb 两个服务项目。\n生成客户端\n生成 svca 的客户端:\n$ cd $GOPATH/src/svca\n$ nirvana client --output ../clientset/svca\n生成 svcb 的客户端:\n$ cd $GOPATH/src/svcb\n$ nirvana client --output ../clientset/svcb\n此时 clientset 的项目结构如下:\nclientset\n├── svca\n│ ├── client.go\n│ └── v1\n│ ├── client.go\n│ └── types.go\n└── svcb\n ├── client.go\n └── v1\n ├── client.go\n └── types.go\n这样所有客户端都在一个项目中,不需要依赖其他服务项目。\n统一网关访问\n在某些场景下,所有的微服务会通过一个公共的网关进行暴露。这样就需要再进一步对客户端进行整合。\n创建 ClientSet\n在 clientset 中创建 clientset.go:\n$ cd $GOPATH/src/clientset\n$ touch clientset.go\nclientset.go 代码如下:\npackage clientset\n\nimport (\n svca \"clientset/svca\"\n svcb \"clientset/svcb\"\n\n rest \"github.com/caicloud/nirvana/rest\"\n)\n\n// Interface describes a clientset.\ntype Interface interface {\n // SvcA returns a client for svc a.\n SvcA() svca.Interface\n // SvcB returns a client for svc b.\n SvcB() svcb.Interface\n}\n\n// ClientSet contains multiple clients.\ntype ClientSet struct {\n svcA svca.Interface\n svcB svcb.Interface\n}\n\n// NewClientSet creates a new client set.\nfunc NewClientSet(cfg *rest.Config) (Interface, error) {\n c := &ClientSet{}\n var err error\n\n c.svcA, err = svca.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n c.svcB, err = svcb.NewClient(cfg)\n if err != nil {\n return nil, err\n }\n\n return c, nil\n}\n\n// MustNewClientSet creates a new client set or panic if an error occurs.\nfunc MustNewClientSet(cfg *rest.Config) Interface {\n c, err := NewClientSet(cfg)\n if err != nil {\n panic(err)\n }\n return c\n}\n\n// SvcA returns a client for svc a.\nfunc (c *ClientSet) SvcA() svca.Interface {\n return c.svcA\n}\n\n// SvcB returns a client for svc b.\nfunc (c *ClientSet) SvcB() svcb.Interface {\n return c.svcB\n}\n\n使用 ClientSet\nClientSet 的使用方法和普通 Client 没有太大区别:\nfunc main() {\n cli := clientset.MustNewClientSet(&rest.Config{\n Scheme: \"http\",\n Host: \"localhost:8080\",\n })\n msgs, err := cli.SvcA().V1().ListMessages(context.Background(), 10)\n if err != nil {\n log.Fatal(err)\n }\n log.Info(msgs)\n}\n\n"},"plugins/logger.html":{"url":"plugins/logger.html","title":"系统日志插件","keywords":"","body":"系统日志插件\n包路径: github.com/caicloud/nirvana/plugins/logger\n系统日志插件是一个伪插件。这个插件本身没有按照 Plugin Framework 编写,只是为了通过 config 包的 Command 暴露 Flag。\n这个插件暴露三个选项:\n// Option contains basic configurations of logger.\ntype Option struct {\n // Debug is logger level.\n Debug bool `desc:\"Debug mode. Output all logs\"`\n // Level is logger level.\n Level int32 `desc:\"Log level. This field is no sense if debug is enabled\"`\n // OverrideGlobal modifies nirvana global logger.\n OverrideGlobal bool `desc:\"Override global logger\"`\n}\n启用 Debug 模式后,Level 就无效。如果 OverrideGlobal 为 true,那么除了设置当前 Server 的 logger 以外,还会设置全局的 logger。\n"},"plugins/reqlog.html":{"url":"plugins/reqlog.html","title":"请求日志插件","keywords":"","body":"请求日志插件\n包路径: github.com/caicloud/nirvana/plugins/reqlog\n请求日志插件会添加一个在 / 上的中间件,用于打印所有路由匹配成功的请求的日志。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nDefault() nirvana.Configurer\n启用插件并使用默认配置\n\n\nLogger(l log.Logger) nirvana.Configurer\n设置 Logger\n\n\nDoubleLog(enable bool) nirvana.Configurer\n启用或关闭双重日志,即请求开始一条日志,请求结束一条日志\n\n\nSourceAddr(enable bool) nirvana.Configurer\n启用或关闭显示源地址\n\n\nRequestID(enable bool) nirvana.Configurer\n启用或关闭显示请求 ID \n\n\nRequestIDKey(key string) nirvana.Configurer\n设置请求 ID 的 key,默认为 X-Request-ID\n\n\n\n"},"plugins/metrics.html":{"url":"plugins/metrics.html","title":"监控指标插件","keywords":"","body":"监控指标插件\n包路径: github.com/caicloud/nirvana/plugins/metrics\n监控指标插件基于 Prometheus,提供了一个 API 用于暴露服务端指标。\n启用插件后,可以直接向 prometheus 包注册指标。采集端可以通过 /metrics 采集指标数据。\nAPI 路径 /metrics 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /metrics\n\n\nNamespace(ns string) nirvana.Configurer\n设置 Prometheus Namespace\n\n\n\n"},"plugins/tracing.html":{"url":"plugins/tracing.html","title":"请求追踪插件","keywords":"","body":"请求追踪插件\n包路径: github.com/caicloud/nirvana/plugins/tracing\n请求追踪插件基于 OpenTracing 接口实现了请求跟踪机制,会在 / 上添加一个中间件用于提取 Tracing 信息。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nCustomTracer(tracer opentracing.Tracer) nirvana.Configurer\n使用自定义的 Tracer\n\n\nDefaultTracer(serviceName string, agentHostPort string) nirvana.Configurer\n使用默认的 Tracer\n\n\nAddHook(hook Hook) nirvana.Configurer\n设置请求 Hook\n\n\n\nHook 接口:\n// Hook allows you to custom information for span.\ntype Hook interface {\n // Exec before request processing\n Before(ctx context.Context, span opentracing.Span)\n // Exec after request processing\n After(ctx context.Context, span opentracing.Span)\n}\n\n"},"plugins/profiling.html":{"url":"plugins/profiling.html","title":"性能分析插件","keywords":"","body":"性能分析插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n性能分析插件添加与 net/http/pprof 一致的 API,用于取得服务运行时信息。\n默认情况下,插件会添加四个 Descriptor:\n\n/debug/pprof\n/debug/pprof/profile\n/debug/pprof/symbol\n/debug/pprof/trace\n\n前缀路径 /debug/pprof 可以通过 Path Configurer 修改。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置路径前缀,默认值为 /debug/pprof\n\n\n\n"},"plugins/version.html":{"url":"plugins/version.html","title":"版本信息插件","keywords":"","body":"版本信息插件\n包路径: github.com/caicloud/nirvana/plugins/profiling\n版本信息插件提供一个 API 返回服务的版本信息。API 路径默认为 /version。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /version\n\n\nName(name string) nirvana.Configurer\n设置服务名称\n\n\nVersion(version string) nirvana.Configurer\n设置服务版本号\n\n\nHash(hash string) nirvana.Configurer\n设置服务 hash 值。一般情况下可以设置为代码的 commit 值\n\n\nDescription(description string) nirvana.Configurer\n设置服务的描述\n\n\n\n"},"plugins/healthcheck.html":{"url":"plugins/healthcheck.html","title":"健康检查插件","keywords":"","body":"健康检查插件\n包路径: github.com/caicloud/nirvana/plugins/healthcheck\n健康检查插件提供一个 API 返回服务当前是否健康。API 默认路径为 /healthz。\n插件提供了一个函数接口:\ntype HealthChecker func(ctx context.Context) error\n如果服务正常,则 checker 应该返回 nil。如果服务异常,则返回相应的错误。\n插件 Configurer:\n\nDisable() nirvana.Configurer\n关闭插件\n\n\nPath(path string) nirvana.Configurer\n设置 API 路径,默认值为 /healthz\n\n\nChecker(checker HealthChecker) nirvana.Configurer\n设置 Checker 用于检查服务是否正常。\n\n\n\n"},"topics/start.html":{"url":"topics/start.html","title":"准备工作","keywords":"","body":"准备工作\n开发工具介绍\n\ngolang:https://golang.org/dl/\ndep:https://github.com/golang/dep\ngometalinter:https://github.com/alecthomas/gometalinter\n\n一般情况下,我们使用最新版本的 golang 进行开发,但是需要保证两个 golang 大版本的兼容性。即使用 1.10.x 开发的情况下,需要保持对 1.9.x 的兼容性。\n另外 Nirvana 只使用 dep 进行依赖管理,不要使用其他依赖管理工具对 vendor 进行任何更新操作。并且所有的依赖需要放置在根目录的 vendor 中,不能在任何子目录下使用 vendor。\n除了常规的 go test 测试以外,还需要使用 gometalinter 进行代码检查,gometalinter 的配置文件在根目录的 config.json 中。\n工作流程\n在 githuh 上 Fork Nirvana 到自己的账户下,然后下载源码到本地开发目录中:\n$ cd $GOPATH/src\n$ mkdir -p github.com/caicloud/\n$ cd github.com/caicloud/\n$ git clone git@github.com:{your account}/nirvana.git\n在完成修改并提交到自己的 repo 之后,通过 github PR 的形式向 Nirvana 提交代码。\n框架设计概览\nNirvana 框架的设计核心思想是:隔离 API 定义和业务逻辑实现\n也就是在使用框架的过程中,用户的业务函数的表现形式与其他普通函数没有差别。基于此,框架中的每个组件和工具包都不应该侵入用户的业务逻辑。如果存在必须要业务逻辑作出处理的功能,也应当以接口的形式提供,并且允许用户自行扩展。\nNirvana 包之间的依赖关系:\n\n\n其中 log 与 errors 是基础包,分别负责日志基础接口和错误处理基础接口。\ndefinition 包包含 Nirvana 框架的 API 定义以及一些相关的工具方法。作为框架的基础,这个包不能依赖其他任何包。\ndefinition/method 帮助用户把实例方法转换为 definition 函数。请参考 方法包。\noperators 中包含了两个组件功能实现了 converters 和 validators,用于 API 参数的类型转换和数据验证。\nservice/router 包实现了基于前缀树的路由和中间件功能。\nservice 包实现了框架 API 路由和处理的所有功能。\nnirvana 包实现了 API Server 以及插件化功能。\nplugins 中包含了许多实现了 nirvana 插件接口的插件。\nconfig 包实现了 Nirvana Command 功能,并提供了从 flags,环境变量,配置文件中读取配置的能力。这个包也是用户使用 Nirvana 的入口包。\nutils 包包含多个工具用于 API 生成,客户端代码生成,项目结构生成。\ncmd/nirvana 是 Nirvana 的主要命令,利用 utils 包帮助用户快速构建项目。\n\n在后续的文档中,会逐步介绍每个包的设计方法和主要代码逻辑。\n"},"topics/log.html":{"url":"topics/log.html","title":"log","keywords":"","body":"log 包\nlog 包提供了一组基础的日志 API 和一个使用了 stderr 进行输出的标准实现。\n标准接口如下:\n// Level is log level of verboser. We strongly recommend you to\n// follow the rules:\n// 1. Use LevelDebug for debug log.\n// 2. Use 1 for important but not frequent log.\n// 3. Use 2 for important and frequent log.\n// 4. Use 3 for not important and not frequent log.\n// 5. Use 4 for not important but frequent log.\n// 6. Use [5, LevelDebug) only if you want to custom log levels.\ntype Level int32\n\nconst (\n // LevelDebug is for debug info.\n LevelDebug Level = math.MaxInt32\n)\n\n// Severity has four classes to correspond with log situation.\ntype Severity string\n\nconst (\n // SeverityInfo is for usual log.\n SeverityInfo Severity = \"INFO\"\n // SeverityWarning is for warning.\n SeverityWarning Severity = \"WARN\"\n // SeverityError is for error.\n SeverityError Severity = \"ERROR\"\n // SeverityFatal is for panic error. The severity means that\n // a logger will output the error and exit immediately.\n // It can't be recovered.\n SeverityFatal Severity = \"FATAL\"\n)\n\n// Verboser is an interface type that implements Info(f|ln) .\n// See the documentation of V for more information.\ntype Verboser interface {\n // Info logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Info(...interface{})\n // Infof logs to the INFO log.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Infof(string, ...interface{})\n // Infoln logs to the INFO log.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Infoln(...interface{})\n}\n\n// Logger provides a set of methods to output log.\ntype Logger interface {\n Verboser\n // V reports whether verbosity at the call site is at least the requested level.\n // The returned value is a Verboser, which implements Info, Infof\n // and Infoln. These methods will write to the Info log if called.\n V(Level) Verboser\n // Warning logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Warning(...interface{})\n // Warningf logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Warningf(string, ...interface{})\n // Warningln logs to the WARNING logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Warningln(...interface{})\n // Error logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Error(...interface{})\n // Errorf logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Errorf(string, ...interface{})\n // Errorln logs to the ERROR logs.\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Errorln(...interface{})\n // Fatal logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\n Fatal(...interface{})\n // Fatalf logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\n Fatalf(string, ...interface{})\n // Fatalln logs to the FATAL logs, then calls os.Exit(1).\n // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\n Fatalln(...interface{})\n // Clone clones current logger with new wrapper.\n // A positive wrapper indicates how many wrappers outside the logger.\n // A negative wrapper indicates how many wrappers should be stripped.\n Clone(wrapper int) Logger\n}\n\n这套日志 API 参考了 glog 的 golang API,并且允许用户接入其他日志系统。\n在实现一个自定义的 logger 之前,需要知道以下几件事情:\n\nlog 包有一个默认的 logger,使用的是 StdLogger。可以通过 SetDefaultLogger() 变更。\n对于不需要输出日志的场景,使用 SilentLogger 的实例而不是 nil.\n正确实现 logger 的 Clone 方法。Clone 方法用于在对 logger 进行包装的时候,获取正确层级的调用栈信息。\n在 Fatal* 时候,使用 os.Exit(1) 进行退出,而不是使用其他错误码(除非业务有要求)。这是标准库的日志包使用的退出码。\n\n"},"topics/errors.html":{"url":"topics/errors.html","title":"errors","keywords":"","body":"errors 包\nerrors 包类似于标准库的 errors 包,但是提供了方法用于生成格式化的错误和错误判断。\nerrors 包中存在三个概念,分别是 Builder,Factory 和 Error。其中 Builder 用于构建 Factory,Factory 则用于构建特定的 Error。\nFactory 接口如下:\n// Factory can create error from a fixed format.\ntype Factory interface {\n // Error generates an error from v.\n Error(v ...interface{}) error\n // Derived checks if an error was derived from current factory.\n Derived(e error) bool\n}\n\nError 接口如下(这个接口并没有显式定义在 errors 包中):\ntype Error interface {\n error\n Code() int\n Message() interface{}\n}\n\n首先看 Facotry 的两个方法:\n\nError 用于传入参数输出一个真正的错误。\nDerived 则用于判断一个错误是否是由当前的 Factory 生成。\n这样就能够非常方便的错误创建和错误判断了。\n\nFactory 是一个具有特定的错误工厂,生成的错误都具有一样的形式(通常是指具有相同 string format,比如 \"${user} is not found\")。\n通常情况下,有 Factory 和 Error 就足够了。但是为了让错误能够以 HTTP API 的形式向客户端返回,我们还需要给 Factory 加上一些附加属性,用来表示返回的错误码等信息。\n因此在 Factory 之上,构建了 Builder 接口,用于创建具有一类特征的 Factory(比如一类表示 NotFound 的错误)。\nBuilder 接口如下:\n// Builder can build error factories and errros.\ntype Builder interface {\n // Build builds a factory to generate errors with predefined format.\n Build(reason Reason, format string) Factory\n // Error immediately creates an error without reason.\n Error(format string, v ...interface{}) error\n}\n\nBuilder 可以构建带有 reason 和 format 的 Factory。也直接提供了 Error 方法用于直接创建出 Error。\n目前 errors 包提供的 Builder 主要是以 HTTP 状态码作为基础的:\n// These factory builders is used to build error factory.\nvar (\n BadRequest = newKind(400) // RFC 7231, 6.5.1\n Unauthorized = newKind(401) // RFC 7235, 3.1\n PaymentRequired = newKind(402) // RFC 7231, 6.5.2\n Forbidden = newKind(403) // RFC 7231, 6.5.3\n NotFound = newKind(404) // RFC 7231, 6.5.4\n MethodNotAllowed = newKind(405) // RFC 7231, 6.5.5\n NotAcceptable = newKind(406) // RFC 7231, 6.5.6\n ProxyAuthRequired = newKind(407) // RFC 7235, 3.2\n RequestTimeout = newKind(408) // RFC 7231, 6.5.7\n Conflict = newKind(409) // RFC 7231, 6.5.8\n Gone = newKind(410) // RFC 7231, 6.5.9\n LengthRequired = newKind(411) // RFC 7231, 6.5.10\n PreconditionFailed = newKind(412) // RFC 7232, 4.2\n RequestEntityTooLarge = newKind(413) // RFC 7231, 6.5.11\n RequestURITooLong = newKind(414) // RFC 7231, 6.5.12\n UnsupportedMediaType = newKind(415) // RFC 7231, 6.5.13\n RequestedRangeNotSatisfiable = newKind(416) // RFC 7233, 4.4\n ExpectationFailed = newKind(417) // RFC 7231, 6.5.14\n Teapot = newKind(418) // RFC 7168, 2.3.3\n UnprocessableEntity = newKind(422) // RFC 4918, 11.2\n Locked = newKind(423) // RFC 4918, 11.3\n FailedDependency = newKind(424) // RFC 4918, 11.4\n UpgradeRequired = newKind(426) // RFC 7231, 6.5.15\n PreconditionRequired = newKind(428) // RFC 6585, 3\n TooManyRequests = newKind(429) // RFC 6585, 4\n RequestHeaderFieldsTooLarge = newKind(431) // RFC 6585, 5\n UnavailableForLegalReasons = newKind(451) // RFC 7725, 3\n\n InternalServerError = newKind(500) // RFC 7231, 6.6.1\n NotImplemented = newKind(501) // RFC 7231, 6.6.2\n BadGateway = newKind(502) // RFC 7231, 6.6.3\n ServiceUnavailable = newKind(503) // RFC 7231, 6.6.4\n GatewayTimeout = newKind(504) // RFC 7231, 6.6.5\n HTTPVersionNotSupported = newKind(505) // RFC 7231, 6.6.6\n VariantAlsoNegotiates = newKind(506) // RFC 2295, 8.1\n InsufficientStorage = newKind(507) // RFC 4918, 11.5\n LoopDetected = newKind(508) // RFC 5842, 7.2\n NotExtended = newKind(510) // RFC 2774, 7\n NetworkAuthenticationRequired = newKind(511) // RFC 6585, 6\n)\n\n这个包方便了用户创建能够被 Nirvana 识别的错误,但是如果业务逻辑中如果不希望引入对 errors 包的依赖,可以自行实现错误包,只要产出的错误符合 Error 接口即可。\n"},"topics/definition.html":{"url":"topics/definition.html","title":"definition","keywords":"","body":"definition 包\ndefinition 包包含了 Nirvana 的 API 定义,用于描述 API 的参数与返回值。\n// Chain contains all subsequent actions.\ntype Chain interface {\n // Continue continues to execute the next subsequent actions.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call Chain.Continue() and pass the context.\ntype Middleware func(context.Context, Chain) error\n\n// Operator is used to operate an object and return an replacement object.\n//\n// For example:\n// A converter:\n// type ConverterForAnObject struct{}\n// func (c *ConverterForAnObject) Kind() {return \"converter\"}\n// func (c *ConverterForAnObject) In() reflect.Type {return definition.TypeOf(&ObjectV1{})}\n// func (c *ConverterForAnObject) Out() reflect.Type {return definition.TypeOf(&ObjectV2{})}\n// func (c *ConverterForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// objV2, err := convertObjectV1ToObjectV2(object.(*ObjectV1))\n// return objV2, err\n// }\n//\n// A validator:\n// type ValidatorForAnObject struct{}\n// func (c *ValidatorForAnObject) Kind() {return \"validator\"}\n// func (c *ValidatorForAnObject) In() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Out() reflect.Type {return definition.TypeOf(&Object{})}\n// func (c *ValidatorForAnObject) Operate(ctx context.Context, object interface{}) (interface{}, error) {\n// if err := validate(object.(*Object)); err != nil {\n// return nil, err\n// }\n// return object, nil\n// }\ntype Operator interface {\n // Kind indicates operator type.\n Kind() string\n // In returns the type of the only object parameter of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n In() reflect.Type\n // Out returns the type of the only object result of operator.\n // The type must be a concrete struct or built-in type. It should\n // not be interface unless it's a file or stream reader.\n Out() reflect.Type\n // Operate operates an object and return one.\n Operate(ctx context.Context, field string, object interface{}) (interface{}, error)\n}\n\n// Method is an alternative of HTTP method. It's more clearer than HTTP method.\n// A definition method binds a certain HTTP method and a success status code.\ntype Method string\n\nconst (\n // List binds to http.MethodGet and code http.StatusOK(200).\n List Method = \"List\"\n // Get binds to http.MethodGet and code http.StatusOK(200).\n Get Method = \"Get\"\n // Create binds to http.MethodPost and code http.StatusCreated(201).\n Create Method = \"Create\"\n // Update binds to http.MethodPut and code http.StatusOK(200).\n Update Method = \"Update\"\n // Patch binds to http.MethodPatch and code http.StatusOK(200).\n Patch Method = \"Patch\"\n // Delete binds to http.MethodDelete and code http.StatusNoContent(204).\n Delete Method = \"Delete\"\n // AsyncCreate binds to http.MethodPost and code http.StatusAccepted(202).\n AsyncCreate Method = \"AsyncCreate\"\n // AsyncUpdate binds to http.MethodPut and code http.StatusAccepted(202).\n AsyncUpdate Method = \"AsyncUpdate\"\n // AsyncPatch binds to http.MethodPatch and code http.StatusAccepted(202).\n AsyncPatch Method = \"AsyncPatch\"\n // AsyncDelete binds to http.MethodDelete and code http.StatusAccepted(202).\n AsyncDelete Method = \"AsyncDelete\"\n)\n\n// Source indicates which place a value is from.\ntype Source string\n\nconst (\n // Path means value is from URL path.\n Path Source = \"Path\"\n // Query means value is from URL query string.\n Query Source = \"Query\"\n // Header means value is from request header.\n Header Source = \"Header\"\n // Form means value is from request body and content type must be\n // \"application/x-www-form-urlencoded\" and \"multipart/form-data\".\n Form Source = \"Form\"\n // File means value is from request body and content type must be\n // \"multipart/form-data\".\n File Source = \"File\"\n // Body means value is from request body.\n Body Source = \"Body\"\n // Auto identifies a struct and generate field values by field tag.\n //\n // Tag name is \"source\". Its value format is \"Source,Name\".\n //\n // ex.\n // type Example struct {\n // Start int `source:\"Query,start\"`\n // ContentType string `source:\"Header,Content-Type\"`\n // }\n Auto Source = \"Auto\"\n // Prefab means value is from a prefab generator.\n // A prefab combines data to generate value.\n Prefab Source = \"Prefab\"\n)\n\n// Destination indicates the target type to place function results.\ntype Destination string\n\nconst (\n // Meta means result will be set into the header of response.\n Meta Destination = \"Meta\"\n // Data means result will be set into the body of response.\n Data Destination = \"Data\"\n // Error means the result is an error and should be treated specially.\n // An error occurs indicates that there is no data to return. So the\n // error should be treated as data and be writed back to client.\n Error Destination = \"Error\"\n)\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Instance is a custom data.\n Instance interface{}\n}\n\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source Source\n // Name is the name to get value from a request.\n // ex. a query name, a header key, etc.\n Name string\n // Default value is used when a request does not provide a value\n // for the parameter.\n Default interface{}\n // Operators can modify and validate the target value.\n // Parameter value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to target function.\n Operators []Operator\n // Description describes the parameter.\n Description string\n}\n\n// Result describes how to handle a result from function results.\ntype Result struct {\n // Destination is the target for the result. Different types make different behavior.\n Destination Destination\n // Operators can modify the result value.\n // Result value is passed to the first operator, then\n // previous operator's result is as next operator's parameter.\n // The result of last operator will be passed to destination handler.\n Operators []Operator\n // Description describes the result.\n Description string\n}\n\n// Definition defines an API handler.\ntype Definition struct {\n // Method is definition method.\n Method Method\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function interface{}\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Summary is a one-line brief description of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n// Descriptor describes a descriptor for API definitions.\ntype Descriptor struct {\n // Path is the url path. It will inherit parent's path.\n //\n // If parent path is \"/api/v1\", current is \"/some\",\n // It means current definitions handles \"/api/v1/some\".\n Path string\n // Consumes indicates content types that current definitions\n // and child definitions can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates content types that current definitions\n // and child definitions can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // Middlewares contains path middlewares.\n Middlewares []Middleware\n // Definitions contains definitions for current path.\n Definitions []Definition\n // Children is used to place sub-descriptors.\n Children []Descriptor\n // Description describes the usage of the path.\n Description string\n}\n\nDescriptor 结构体包含具有如下含义的字段:\n\nAPI 路径\n可被 Middlewares,Definitions,Children 继承的字段\n其他与 API 路径同等级别的字段\n\n如果希望对 Descriptor 进行扩展,需要遵守上面这些规则。\nDefinition 结构体包含了一个具体的 API 定义:\n\nAPI 方法,这个方法是一个抽象方法,用于描述一种行为(比如 Create)。\nAPI 参数和返回值定义\n其他与具体 API 同等级别的字段\n\n如果希望对 Definition 进行扩展,需要遵守上面这些规则。\nParameter 和 Result 分别对应 API 的参数和返回值,与业务函数的参数与返回值一一对应。字段定义与参数和返回值的转换有关。\n在上面的定义中,存在两个额外功能:\n\n在 Descriptor 中提供了 Middleware\n在 Parameter 和 Result 中,提供了 Operator\n\n其中 Middleware 提供了中间件的能力,可以在请求之前让用户对请求进行一些特殊处理。而 Operator 则针对单个的业务参数和返回值,可以对值进行验证和修改。\ndefinition 包除了包含对 API 的定义以外,还提供了一些函数,帮助快速构建 Definitions 和 Operators:\n// MIME types\nconst (\n // acceptTypeAll indicates a accept type from http request.\n // It means client can receive any content.\n // Request content type in header \"Content-Type\" must not set to \"*/*\".\n // It only can exist in request header \"Accept\".\n // In most time, it locate at the last element of \"Accept\".\n // It's default value if client have not set \"Accept\" header.\n MIMEAll = \"*/*\"\n MIMENone = \"\"\n MIMEText = \"text/plain\"\n MIMEJSON = \"application/json\"\n MIMEXML = \"application/xml\"\n MIMEOctetStream = \"application/octet-stream\"\n MIMEURLEncoded = \"application/x-www-form-urlencoded\"\n MIMEFormData = \"multipart/form-data\"\n)\n\n// OperatorFunc creates operator by function.\n// function must has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to identify field.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc OperatorFunc(kind string, f interface{}) Operator\n\n"},"topics/method.html":{"url":"topics/method.html","title":"definition/method","keywords":"","body":"method 包\n在 definition 包中,可以看到 Definition.Function 必须是一个函数,这就要求业务逻辑必须放在函数中,而不能在实例方法中。为了解决这个问题,method 包提供了一个实例方法容器,帮助用户把实例方法转换为函数。\n容器如下:\n// Container contains instances and mappings.\ntype Container struct {\n ...\n}\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc (c *Container) Put(instance interface{})\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc (c *Container) PutInterface(iface interface{}, instance interface{})\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc (c *Container) Get(instance interface{}, method string) interface{}\n\n这个实例方法容器分离了方法的 Get 和 Put 过程。也就是可以在声明 API 时,使用 Get 获取某个实例的方法,之后再在服务启动逻辑里 Put 真正的实例,即 Get 可以在 Put 之前使用。\n这个主要是利用了 golang 的动态函数构建的功能,先生成函数,但是在函数被真正调用的时候才去获取真正的实例里的方法。\nmethod 包还提供了一个全局的 Container:\nvar defaultContainer = NewContainer()\n\n// Put puts an instance in this container. The instance must have one or more methods.\nfunc Put(instance interface{}) {\n defaultContainer.Put(instance)\n}\n\n// PutInterface puts an instance in this container. The instance must have one or more methods.\n// The iface should be like (*ArbitraryInterface)(nil).\nfunc PutInterface(iface interface{}, instance interface{}) {\n defaultContainer.PutInterface(iface, instance)\n}\n\n// Get returns a function for specified method. If you want to specify a method from an\n// interface, you need to use (*ArbitraryInterface)(nil) as instance.\nfunc Get(instance interface{}, method string) interface{} {\n return defaultContainer.Get(instance, method)\n}\n\n一般情况下,用户会使用这个全局的容器。\n"},"topics/converter.html":{"url":"topics/converter.html","title":"operators/converter","keywords":"","body":"converter 包\nconverter 包提供了一个 Converter 实现,帮助用户快速构建名为 converter 的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `converter`.\nconst OperatorKind = \"converter\"\n\n// Converter describes a converter.\ntype Converter interface {\n definition.Operator\n}\n\n// For creates converter for a converter func.\n//\n// A converter func should has signature:\n// func f(context.Context, string, AnyType) (AnyType, error)\n// The second parameter is a string that is used to generate error.\n// AnyType can be any type in go. But struct type and\n// built-in data type is recommended.\nfunc For(f interface{}) Converter {\n return definition.OperatorFunc(OperatorKind, f)\n}\n\n这个包非常简单,只是提供了一个方法帮助用户将转换函数生成为 Operator。\n"},"topics/validator.html":{"url":"topics/validator.html","title":"operators/validator","keywords":"","body":"validator 包\nvalidator 包提供了一系列的方法帮助用户快速生成用于校验参数的 Operator:\n// OperatorKind means opeartor kind. All operators generated in this package\n// are has kind `validator`.\nconst OperatorKind = \"validator\"\n\n// Category distinguishs validation type based on different Validator implementation.\ntype Category string\n\nconst (\n // CategoryVar indicates that the validator can validate basic built-in types.\n // Types: string, int*, uint*, bool.\n CategoryVar Category = \"Var\"\n // CategoryStruct indicates that the validator can validate struct.\n CategoryStruct Category = \"Struct\"\n // CategoryCustom indicates the validator is a custom validator.\n CategoryCustom Category = \"Custom\"\n)\n\n// Validator describes an interface for all validator.\ntype Validator interface {\n definition.Operator\n // Category indicates validator type.\n Category() Category\n // Tag returns tag.\n Tag() string\n // Description returns description of current validator.\n Description() string\n}\n\n// NewCustom calls f for validation, using description for doc gen.\n// User should only do custom validation in f.\n// Validations which can be done by other way should be done in another Operator.\n// Exp:\n// []definition.Operator{NewCustom(f,\"custom validation description\")}\n// f should be func(ctx context.Context, object AnyType) error\nfunc NewCustom(f interface{}, description string) Validator\n\n// Struct returns an operator to validate a structs exposed fields, and automatically validates nested structs, unless otherwise specified\n// and also allows passing of context.Context for contextual validation information.\nfunc Struct(instance interface{}) Validator\n\n// String creates validator for string type.\nfunc String(tag string) Validator\n\n// Int creates validator for int type.\nfunc Int(tag string) Validator\n\n// Int64 creates validator for int64 type.\nfunc Int64(tag string) Validator\n\n// Int32 creates validator for int32 type.\nfunc Int32(tag string) Validator\n\n// Int16 creates validator for int16 type.\nfunc Int16(tag string) Validator\n\n// Int8 creates validator for int8 type.\nfunc Int8(tag string) Validator\n\n// Byte creates validator for byte type.\nfunc Byte(tag string) Validator\n\n// Uint creates validator for uint type.\nfunc Uint(tag string) Validator\n\n// Uint64 creates validator for uint64 type.\nfunc Uint64(tag string) Validator\n\n// Uint32 creates validator for uint32 type.\nfunc Uint32(tag string) Validator\n\n// Uint16 creates validator for uint16 type.\nfunc Uint16(tag string) Validator\n\n// Uint8 creates validator for uint8 type.\nfunc Uint8(tag string) Validator\n\n// Bool creates validator for bool type.\nfunc Bool(tag string) Validator\n\n目前支持三种类型的验证,分别对应 golang 基础类型,结构体类型和自定义类型。目前验证方法基于 gopkg.in/go-playground/validator.v9,如果希望使用其他工具,可以自定义一套类似的验证函数。\n"},"topics/router.html":{"url":"topics/router.html","title":"service/router","keywords":"","body":"router 包\nrouter 包实现了基于前缀树的路由,并提供了三种类型的路由节点:\n\n字符串类型节点\n正则类型节点(包括一个全匹配类型节点)\n剩余路径类型节点\n\n字符串类型节点:\n// stringNode describes a string router node.\ntype stringNode struct {\n handler\n children\n // prefix is the fixed string to match path.\n prefix string\n}\n\n字符串类型节点进行字符串匹配。在匹配过程中,路径前缀必须与 prefix 完全匹配。\n正则类型节点:\n// index contains the key and it's index of the submatches.\ntype index struct {\n // Key is the name for the value.\n Key string\n // Pos is the index of value in submatches.\n Pos int\n}\n\n// regexpNode contains information for matching a regexp segment.\ntype regexpNode struct {\n handler\n children\n // indices contains all positions to get values from submatches.\n indices []index\n // exp is the regular expression.\n exp string\n // regexp is a regexp instance to match.\n regexp *regexp.Regexp\n}\n\n正则类型节点则根据正则表达式匹配一段路径,并提取出匹配的字符串。\n全匹配类型节点是正则类型节点的一个特例,即等价于正则表达式的 .*:\n// fullMatchRegexpNode is an optimizing of RegexpNode.\ntype fullMatchRegexpNode struct {\n handler\n children\n // key is the name for the only value.\n key string\n}\n\n这是对正则表达式的一个常用特例的优化,快速进行全匹配。\n正则类型节点和全匹配类型节点存在一个特殊的限制:只能匹配到下一个 / 之前。\n剩余路径类型节点:\n// pathNode matches all rest path.\ntype pathNode struct {\n handler\n // key is the key for the rest path.\n key string\n}\n\n这个节点匹配剩余所有路径。\n下面用一个例子来说明这几个节点:\nAPI Path: /apis/v1/{regexp:[a-z]{1,2}}/{fullmatch}/{path:*}\nMatched Path: /apis/v1/ab/something/the/rest/path\nGenerated Nodes:\n String Node: /apis/v1/ -> /apis/v1/\n Regexp Node: regexp:[a-z]{1,2} -> ab\n String Node: / -> /\n Full Match Node: fullmatch:.* -> something\n String Node: / -> /\n Path Node: * -> the/rest/path\n\n一个路径在前缀树的节点中从根节点开始进行匹配,直到某个后代节点匹配完了整个路径,那么这个后代节点就会作为这个路径的匹配链的最后一个节点,即使这个节点还有后代节点,也不会继续进行匹配。因此每个节点都可能是某些路径的最后一个节点。\n在上面的路径节点中,每个节点都可以绑定一个 Inspector:\n// Inspector can select an executor to execute.\ntype Inspector interface {\n // Inspect finds a valid executor to execute target context.\n // It returns an error if it can't find a valid executor.\n Inspect(context.Context) (Executor, error)\n}\n\n// Executor executs with a context.\ntype Executor interface {\n // Execute executes with context.\n Execute(context.Context) error\n}\n\n路径匹配完成后,会调用匹配链的最后一个节点的 Inspector 来生成一个能够处理当前的路由上下文的 Executor。Inspector 如果能返回一个 Executor,router 会将整个匹配链上所有节点按照从根节点开始的顺序将中间件串联起来,并绑定上这个 Executor。如果不能返回 Executor,则认为路由匹配失败。匹配失败的话,中间件都不会执行。\n中间件接口如下:\n// RoutingChain contains the call chain of middlewares and executor.\ntype RoutingChain interface {\n // Continue continues to execute the next middleware or executor.\n Continue(context.Context) error\n}\n\n// Middleware describes the form of middlewares. If you want to\n// carry on, call RoutingChain.Continue() and pass the context.\ntype Middleware func(context.Context, RoutingChain) error\n\n对于中间件而言,处理完当前的任务之后只需要调用 RoutingChain 将 Context 通过 Continue 传递下去即可。这是一个阻塞过程,只有后续的中间件执行完成了才会返回。而最后一个中间件调用 Continue 实际上是调用的 Executor,因此所有中间件的 Continue 执行完成之后,请求也处理完成了。\n注:这个包里所有的接口都不会被用户直接使用,用户只能通过 definition 包进行 API 定义,然后由 service 包进行路由构建和匹配。\n"},"topics/service.html":{"url":"topics/service.html","title":"service","keywords":"","body":"service 包\nservice 包实现了 Nirvana 的 API 处理框架:\n Service.ServeHTTP()\n ----------------------\n ↓ ↑\n|-----Filters------| ↑\n ↓ ↑\n|---Router Match---| ↑\n ↓ ↑\n|-------------Middlewares------------|\n ↓ ↑\n|-------------Executor---------------|\n ↓ ↑\n|-ParameterGenerators-|-DestinationHandlers-|\n ↓ ↑\n|------------User Function-----------|\nservice 包的入口是 Builder:\n// Builder builds service.\ntype Builder interface {\n // Logger returns logger of builder.\n Logger() log.Logger\n // SetLogger sets logger to server.\n SetLogger(logger log.Logger)\n // Modifier returns modifier of builder.\n Modifier() DefinitionModifier\n // SetModifier sets definition modifier.\n SetModifier(m DefinitionModifier)\n // Filters returns all request filters.\n Filters() []Filter\n // AddFilters add filters to filter requests.\n AddFilter(filters ...Filter)\n // AddDescriptors adds descriptors to router.\n AddDescriptor(descriptors ...definition.Descriptor) error\n // Middlewares returns all router middlewares.\n Middlewares() map[string][]definition.Middleware\n // Definitions returns all definitions. If a modifier exists, it will be executed.\n Definitions() map[string][]definition.Definition\n // Build builds a service to handle request.\n Build() (Service, error)\n}\n\ntype Service interface {\n http.Handler\n}\n\n// DefinitionModifier is used in Server. It's used to modify definition.\n// If you want to add some common data into all definitions, you can write\n// a customized modifier for it.\ntype DefinitionModifier func(d *definition.Definition)\n\n\n// Filter can filter request. It has the highest priority in a request\n// lifecycle. It runs before router matching.\n// If a filter return false, that means the request should be filtered.\n// If a filter want to filter a request, it should handle the request\n// by itself.\ntype Filter func(resp http.ResponseWriter, req *http.Request) bool\n\nBuilder 构建 Service 来提供 HTTP 服务。因此 Builder 提供了多个方法用于设置生成服务需要的日志,Definition 修改器,请求过滤器,API 描述符。构建完成的 Service 实际上是一个 http.Handler,用来处理请求。\n其中 Definition 修改器用于在生成路由之前修改 API Definition。请求过滤器则是在 Service 执行的时候才会被调用,请求过滤器的优先级高于路由匹配。也就是说,在路由匹配之前,请求就有可能被过滤器直接过滤掉。\nBuilder 还会将 API Definition 转换为路由需要的数据结构,涉及到以下内容:\n\n对应 Consumes 和 Produces 的 Consumer 和 ProducerConsumer 针对请求的 body,将数据转换为业务函数需要的数据类型(通常是结构体)。Producer 则是将业务函数的返回值转换并写入到响应的 body 中。 \n// Consumer handles specifically typed data from a reader and unmarshals it into an object.\ntype Consumer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Consume unmarshals data from r into v.\n Consume(r io.Reader, v interface{}) error\n}\n\n// Producer marshals an object to specifically typed data and write it into a writer.\ntype Producer interface {\n // ContentType returns a HTTP MIME type.\n ContentType() string\n // Produce marshals v to data and write to w.\n Produce(w io.Writer, v interface{}) error\n}\n\n\n对应 Prefab 类型的 Prefab 生成器这个生成器用于创建业务函数需要的特定实例,一般是服务端实例,即不是从请求里获取的数据而生成的。service 包里提供了一个 Context Prefab 生成器,简单的将参数里的 context 返回出去,供业务函数使用。// Prefab creates instances for internal type. These instances are not\n// unmarshaled form http request data.\ntype Prefab interface {\n // Name returns prefab name.\n Name() string\n // Type is instance type.\n Type() reflect.Type\n // Make makes an instance.\n Make(ctx context.Context) (interface{}, error)\n}\n\n\n对应 golang 基础类型的转换器这些转换器一般是用于将请求里的 query,header 等简单字符串数据转换为 golang 的基础类型,供业务函数使用。// Converter is used to convert []string to specific type. Data must have one\n// element at least or it will panic.\ntype Converter func(ctx context.Context, data []string) (interface{}, error)\n\n\n用于封装请求的 ValueContainer这个接口是对 Request 的一次封装,方便获取对应位置的字符串数据。// ValueContainer contains values from a request.\ntype ValueContainer interface {\n // Path returns path value by key.\n Path(key string) (string, bool)\n // Query returns value from query string.\n Query(key string) ([]string, bool)\n // Header returns value by header key.\n Header(key string) ([]string, bool)\n // Form returns value from request. It is valid when\n // http \"Content-Type\" is \"application/x-www-form-urlencoded\"\n // or \"multipart/form-data\".\n Form(key string) ([]string, bool)\n // File returns a file reader when \"Content-Type\" is \"multipart/form-data\".\n File(key string) (multipart.File, bool)\n // Body returns a reader to read data from request body.\n // The reader only can read once.\n Body() (reader io.ReadCloser, contentType string, ok bool)\n}\n\n\n用于封装响应的 ResponseWriterResponseWriter 是对 http.ResponseWriter 的一个扩展,提供了一些功能方便中间件使用。// ResponseWriter extends http.ResponseWriter.\ntype ResponseWriter interface {\n http.ResponseWriter\n // HeaderWritable can check whether WriteHeader() has\n // been called. If the method returns false, you should\n // not recall WriteHeader().\n HeaderWritable() bool\n // StatusCode returns status code.\n StatusCode() int\n // ContentLength returns the length of written content.\n ContentLength() int\n}\n\n\n用于合并请求和响应的 ContextHTTPContext 实现了 Context 接口,包装了请求的信息。作为路由上下文使用。// HTTPContext describes an http context.\ntype HTTPContext interface {\n Request() *http.Request\n ResponseWriter() ResponseWriter\n ValueContainer() ValueContainer\n RoutePath() string\n}\n\n\n用于生成业务函数的参数的 ParameterGeneratorParameterGenerator 是真正的参数生成器,通过调用 Consumer,Converter,Prefab 等来完成业务函数的参数生成。// ParameterGenerator is used to generate object for a parameter.\ntype ParameterGenerator interface {\n // Source returns the source generated by current generator.\n Source() definition.Source\n // Validate validates whether defaultValue and target type is valid.\n Validate(name string, defaultValue interface{}, target reflect.Type) error\n // Generate generates an object by data from value container.\n Generate(ctx context.Context, vc ValueContainer, consumers []Consumer, name string, target reflect.Type) (interface{}, error)\n}\n\n\n用于将业务函数返回值写入 Response 的 DestinationHandlerDestinationHandler 是业务函数返回值处理器,通过调用 Producer 将返回值转换为字节写入响应中。在 DestinationHandler 中,错误是会进行特殊处理的。如果业务函数返回的错误符合 Error 接口,则会根据这个接口来生成错误码和返回数据结构。\n// Error is a common interface for error.\n// If an error implements the interface, type handlers can\n// use Code() to get a specified HTTP status code.\ntype Error interface {\n // Code is a HTTP status code.\n Code() int\n // Message is an object which contains information of the error.\n Message() interface{}\n}\n\nconst (\n // HighPriority for error type.\n // If an error occurs, ignore meta and data.\n HighPriority int = 100\n // MediumPriority for meta type.\n MediumPriority int = 200\n // LowPriority for data type.\n LowPriority int = 300\n)\n\n// DestinationHandler is used to handle the results from API handlers.\ntype DestinationHandler interface {\n // Type returns definition.Type which the type handler can handle.\n Destination() definition.Destination\n // Priority returns priority of the type handler. Type handler with higher priority will prior execute.\n Priority() int\n // Validate validates whether the type handler can handle the target type.\n Validate(target reflect.Type) error\n // Handle handles a value. If the handler has something wrong, it should return an error.\n // The handler descides how to deal with value by producers and status code.\n // The status code is a success status code. If everything is ok, the handler should use the status code.\n //\n // There are three cases for return values (goon means go on or continue):\n // 1. go on is true, err is nil.\n // It means that current type handler did nothing (or looks like did nothing) and next type handler\n // should take the context.\n // 2. go on is false, err is nil.\n // It means that current type handler has finished the context and next type handler should not run.\n // 3. err is not nil\n // It means that current type handler handled the context but something wrong. All subsequent type\n // handlers should not run.\n Handle(ctx context.Context, producers []Producer, code int, value interface{}) (goon bool, err error)\n}\n\n\n\n注:以上每个接口对应的实例都是可以通过相关的函数注册和修改的。\n"},"topics/nirvana.html":{"url":"topics/nirvana.html","title":"nirvana","keywords":"","body":"nirvana 包\nnirvana 包在根目录中,实现了 Nirvana Server 和插件系统。这个包放置在根目录中是因为这个包是 Nirvana 提供的用于生成 API Server 的顶级包,而且其依赖的所有包只来自 Nirvana 自身和标准库(config 包依赖了 nirvana 包和其他第三方的包,实际上是一个借助了 Nirvana 和第三方功能的扩展)。\nServer 接口如下:\n// Server is a complete API server.\n// The server contains a router to handle all requests form clients.\ntype Server interface {\n // Serve starts to listen and serve requests.\n // The method won't return except an error occurs.\n Serve() error\n // Shutdown gracefully shuts down the server without interrupting any\n // active connections.\n Shutdown(ctx context.Context) error\n // Builder create a service builder for current server. Don't use this method directly except\n // there is a special server to hold http services. After server shutdown, clean resources via\n // returned cleaner.\n // This method always returns same builder until cleaner is called. Then it will\n // returns new one.\n Builder() (builder service.Builder, cleaner func() error, err error)\n}\n\n创建 Server 需要使用 Config:\n// Config describes configuration of server.\ntype Config struct {\n ...\n}\n\n// Locked checks if the config is locked.\nfunc (c *Config) Locked() bool\n\n// IP returns listenning ip.\nfunc (c *Config) IP() string\n\n// Port returns listenning port.\nfunc (c *Config) Port() uint16\n\n// Logger returns logger.\nfunc (c *Config) Logger() log.Logger\n\n// Configurer is used to configure server config.\ntype Configurer func(c *Config) error\n\n// Configure configs by configurers. It panics if an error occurs or config is locked.\nfunc (c *Config) Configure(configurers ...Configurer) *Config\n\n// Config gets external config by name. This method is for plugins.\nfunc (c *Config) Config(name string) interface{}\n\n// Set sets external config by name. This method is for plugins.\n// Set a nil config will delete it.\nfunc (c *Config) Set(name string, config interface{})\n\n// NewServer creates a nirvana server. After creation, don't modify\n// config. Also don't create another server with current config.\nfunc NewServer(c *Config) Server\n\n在 Config 中,存在一些 Server 级别的配置,这些配置是针对当前服务的。而对应的 Configurer 也在当前包中。如果需要对配置进行扩展,增强 Server 功能,则可以增加相应字段,否则应该使用插件机制增加功能。\n在 Config 中可以看到 Config 和 Set 方法,这两个方法就是提供给插件允许插件设置自身的配置的。\n// ConfigInstaller is used to install config to service builder.\ntype ConfigInstaller interface {\n // Name is the external config name.\n Name() string\n // Install installs stuffs before server starting.\n Install(builder service.Builder, config *Config) error\n // Uninstall uninstalls stuffs after server terminating.\n Uninstall(builder service.Builder, config *Config) error\n}\n\n注册了插件之后,在服务启动的时候,会遍历所有插件配置,然后调用插件的 Install 方法安装插件。\n"},"topics/config.html":{"url":"topics/config.html","title":"config","keywords":"","body":"config 包\nconfig 包利用 github.com/spf13/cobra 和 github.com/spf13/viper 实现了 Nirvana Command 和配置读取,为 Nirvana 服务启动提供了命令行支持。\nNirvanaCommand 接口如下:\n// NirvanaCommand is a nirvana command.\ntype NirvanaCommand interface {\n // EnablePlugin enables plugins.\n EnablePlugin(plugins ...Plugin) NirvanaCommand\n // AddOption will fill up options from flags/ENV/config after executing.\n // A non-empty prefix is recommended. It's used to divide option namespaces.\n AddOption(prefix string, options ...CustomOption) NirvanaCommand\n // Add adds a field by key.\n // If you don't have any struct to describe an option, you can use the method to\n // add a single field into nirvana command.\n // `pointer` must be a pointer to golang basic data type (e.g. *int, *string).\n // `key` must a config key. It's like 'nirvana.ip' and 'myconfig.name.firstName'.\n // The key will be converted to flag and env (e.g. --nirvana-ip and NIRVANA_IP).\n // If you want a short flag for the field, you can only set a one-char string.\n // `desc` describes the field.\n Add(pointer interface{}, key string, shortFlag string, desc string) NirvanaCommand\n // Execute runs nirvana server.\n Execute(descriptors ...definition.Descriptor) error\n // ExecuteWithConfig runs nirvana server from a custom config.\n ExecuteWithConfig(cfg *nirvana.Config) error\n // Command returns a command for command.\n Command(cfg *nirvana.Config) *cobra.Command\n // SetHook sets nirvana command hook.\n SetHook(hook NirvanaCommandHook)\n // Hook returns nirvana command hook.\n Hook() NirvanaCommandHook\n}\n\nNirvanaCommand 扩展了 nirvana 包的插件能力:\n// CustomOption must be a pointer to struct.\n//\n// Here is an example:\n// type Option struct {\n// FirstName string `desc:\"Desc for First Name\"`\n// Age uint16 `desc:\"Desc for Age\"`\n// }\n// The struct has two fields (with prefix example):\n// Field Flag ENV Key (In config file)\n// FirstName --example-first-name EXAMPLE_FIRST_NAME example.firstName\n// Age --example-age EXAMPLE_AGE example.age\n// When you execute command with `--help`, you can see the help doc of flags and\n// descriptions (From field tag `desc`).\n//\n// The priority is:\n// Flag > ENV > Key > The value you set in option\ntype CustomOption interface{}\n\n// Plugin is for plugins to collect configurations\ntype Plugin interface {\n // Name returns plugin name.\n Name() string\n // Configure configures nirvana config via current options.\n Configure(cfg *nirvana.Config) error\n}\nNirvana Command 要求每个插件提供一个 Option,并且实现 Plugin 接口。用户在 Comamnd 中传递 Option 来启用插件,并且将插件 Option 中的公开字段根据一定的规则(规则参考上面的注释)从 flag,环境变量,配置文件中读取。这样可以方便用户通过外部选项来改变运行时的行为。\n由于 Nirvana Config 服务配置的特殊性,config 包提供了一个 Option 来表达这些配置:\n// Option contains basic configurations of nirvana.\ntype Option struct {\n // IP is the IP to listen.\n IP string `desc:\"Nirvana server listening IP\"`\n // Port is the port to listen.\n Port uint16 `desc:\"Nirvana server listening Port\"`\n // Key is private key for HTTPS.\n Key string `desc:\"TLS private key (PEM format) for HTTPS\"`\n // Cert is certificate for HTTPS.\n Cert string `desc:\"TLS certificate (PEM format) for HTTPS\"`\n}\n\n除了插件 Option 以外,config 包会从以下文件列表中读取配置文件:\n目录:\n ./\n ./config/\n {ExecutableFilePath}/\n {ExecutableFilePath}/config/\n /etc/nirvana/\n\n配置文件名:\n nirvana.yaml\n nirvana.toml\n nirvana.json\n如果读取到配置文件,那么除了使用 Option 接收配置以外,还可以通过一些帮助方法获取配置:\n// IsSet checks to see if the key has been set in any of the data locations.\n// IsSet is case-insensitive for a key\nfunc IsSet(key string) bool\n\n// Set sets the value for the key in the override regiser.\n// Set is case-insensitive for a key.\n// Will be used instead of values obtained via\n// flags, config file, ENV, default, or key/value store.\nfunc Set(key string, value interface{})\n\n// Get can retrieve any value given the key to use.\n// Get is case-insensitive for a key.\n// Get has the behavior of returning the value associated with the first\n// place from where it is set. Viper will check in the following order:\n// override, flag, env, config file, key/value store, default\n//\n// Get returns an interface. For a specific value use one of the Get____ methods.\nfunc Get(key string) interface{}\n\n// GetBool returns the value associated with the key as a bool.\nfunc GetBool(key string) bool\n\n// GetDuration returns the value associated with the key as a time.Duration.\nfunc GetDuration(key string) time.Duration\n\n// GetFloat32 returns the value associated with the key as a float32.\nfunc GetFloat32(key string) float32\n\n// GetFloat64 returns the value associated with the key as a float64.\nfunc GetFloat64(key string) float64\n\n// GetInt returns the value associated with the key as a int.\nfunc GetInt(key string) int\n\n// GetInt8 returns the value associated with the key as a int.\nfunc GetInt8(key string) int8\n\n// GetInt16 returns the value associated with the key as a int.\nfunc GetInt16(key string) int16\n\n// GetInt32 returns the value associated with the key as a int32.\nfunc GetInt32(key string) int32\n\n// GetInt64 returns the value associated with the key as a int64.\nfunc GetInt64(key string) int64\n\n// GetString returns the value associated with the key as a string.\nfunc GetString(key string) string\n\n// GetStringSlice returns the value associated with the key as a []string.\nfunc GetStringSlice(key string) []string\n\n// GetUint returns the value associated with the key as a uint.\nfunc GetUint(key string) uint\n\n// GetUint8 returns the value associated with the key as a uint.\nfunc GetUint8(key string) uint8\n\n// GetUint16 returns the value associated with the key as a uint.\nfunc GetUint16(key string) uint16\n\n// GetUint32 returns the value associated with the key as a uint32.\nfunc GetUint32(key string) uint32\n\n// GetUint64 returns the value associated with the key as a uint64.\nfunc GetUint64(key string) uint64\n\n注:如果在 nirvana 包中对 Config 进行了扩展,涉及到字段的改变,也需要在这个包中修改 Option 和相应的功能。\n"},"topics/rest.html":{"url":"topics/rest.html","title":"rest","keywords":"","body":"rest 包\nrest 包提供了一个简单的 REST Client 用于访问 API 服务。\n在这个包中,主要包含三个概念:Config,Client 和 Request。Config 是 Client 的配置,用于创建 Client。而 Request 则由 Client 创建,用来表示每一个 REST 请求。\n// RequestExecutor implements a http client.\ntype RequestExecutor interface {\n Do(req *http.Request) (*http.Response, error)\n}\n\n// Config is rest client config.\ntype Config struct {\n // Scheme is http scheme. It can be \"http\" or \"https\".\n Scheme string\n // Host must be a host string, a host:port or a URL to a server.\n Host string\n // Executor is used to execute http requests.\n // If it is empty, http.DefaultClient is used.\n Executor RequestExecutor\n}\n\n// Client implements builder pattern for http client.\ntype Client struct {\n ...\n}\n\n// NewClient creates a client.\nfunc NewClient(cfg *Config) (*Client, error)\n\n// Request creates an request with specific method and url path.\n// The code is only for checking if status code of response is right.\nfunc (c *Client) Request(method string, code int, url string) *Request\n\n// Request describes a http request.\ntype Request struct {\n ...\n}\n\n// Path sets path parameter.\nfunc (r *Request) Path(name string, value interface{}) *Request\n\n// Query sets query parameter.\nfunc (r *Request) Query(name string, values ...interface{}) *Request\n\n// Header sets header parameter.\nfunc (r *Request) Header(name string, values ...interface{}) *Request\n\n// Form sets form parameter.\nfunc (r *Request) Form(name string, values ...interface{}) *Request\n\n// File sets file parameter.\nfunc (r *Request) File(name string, file interface{}) *Request\n\n// Body sets body parameter.\nfunc (r *Request) Body(contentType string, value interface{}) *Request\n\n// Meta sets header result.\nfunc (r *Request) Meta(value *map[string]string) *Request\n\n// Data sets body result. value must be a pointer.\nfunc (r *Request) Data(value interface{}) *Request\n\n// Do executes the request.\nfunc (r *Request) Do(ctx context.Context) error\n\nRequest 保存了一个请求的数据,用 Path,Query,Header,Form,File,Body 来设置请求的相关值,Meta 和 Data 来设置用于接收响应的值(都是指针)。然后 Do 用于真正发起请求,并完成 Meta 和 Data 的填充。\nRequest 的方法与 API Definition 的除了 Prefab 和 Error 之外的参数和返回值类型一一对应,这样可以十分方便的设置对应的值。由于 Prefab 是由服务端生成而不由客户端提交,Error 由 Do 方法返回,因此这两种类型没有对应的方法。\n注:这个 Client 会被由命令 nirvana client 生成的客户端依赖,因此需要确保两者的一致性。如果用户自定义了一些新的请求和响应类型,也需要对这个客户端进行扩展。 \n"},"topics/utils.html":{"url":"topics/utils.html","title":"utils","keywords":"","body":"utils 系列包\nutils 系列包包含:\n\napi 包,用于读取项目源码,并生成与 API 有关的所有数据结构,产出的结构可用于生成文档和客户端。\nbuilder 包,利用 api 包读取源码并生成 API 数据。\ngenerators/golang 包,利用 api 包提供的数据结构生成 golang 客户端。\ngenerators/swagger 包,利用 api 包提供的数据结构生成 API 文档。\ngenerators/utils 包,提供公共工具给其他生成器使用。\nprinter 包,提供了一个在 Terminal 中打印表格的功能。\nproject 包,提供了基础工具用于读取项目配置文件,通常是 nirvana.yaml。\n\n除了 printer 包以外,其他包都是用于生成文档和客户端用的。\n在 api 包中,提供了如下功能:\n\n对应 golang type 的 Type为了能让 golang type 能转换为可读的数据结构,构建了 Type 相关类型:\n// TypeName is unique name for go types.\ntype TypeName string\n\n// TypeNameInvalid indicates an invalid type name.\nconst TypeNameInvalid = \"\"\n\n// StructField describes a field of a struct.\ntype StructField struct {\n // Name is the field name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package path that qualifies a lower case (unexported)\n // field name. It is empty for upper case (exported) field names.\n PkgPath string\n // Type is field type name.\n Type TypeName\n // Tag is field tag.\n Tag reflect.StructTag\n // Offset within struct, in bytes.\n Offset uintptr\n // Index sequence for Type.FieldByIndex.\n Index []int\n // Anonymous shows whether the field is an embedded field.\n Anonymous bool\n}\n\n// FuncField describes a field of function.\ntype FuncField struct {\n // Name is the field name.\n Name string\n // Type is field type name.\n Type TypeName\n}\n\n// Type describes an go type.\ntype Type struct {\n // Name is short type name.\n Name string\n // Comments of the type.\n Comments string\n // PkgPath is the package for this type.\n PkgPath string\n // Kind is type kind.\n Kind reflect.Kind\n // Key is map key type. Only used in map.\n Key TypeName\n // Elem is the element type of map, slice, array, pointer.\n Elem TypeName\n // Fields contains all struct fields of a struct.\n Fields []StructField\n // In presents fields of function input parameters.\n In []FuncField\n // Out presents fields of function output results.\n Out []FuncField\n // Conflict identifies the index of current type in a list of\n // types which have same type names. In most cases, this field is 0.\n Conflict int\n}\n\n\n对应 Nirvana API 的 Definition此处的 Definition 大部分字段与 definition 包中的相同,之所以不复用之前的结构,是因为有部分类型相关的字段稍有不同。\n// Parameter describes a function parameter.\ntype Parameter struct {\n // Source is the parameter value generated from.\n Source definition.Source\n // Name is the name to get value from a request.\n Name string\n // Description describes the parameter.\n Description string\n // Type is parameter object type.\n Type TypeName\n // Default is encoded default value.\n Default []byte\n}\n\n// Result describes a function result.\ntype Result struct {\n // Destination is the target for the result.\n Destination definition.Destination\n // Description describes the result.\n Description string\n // Type is result object type.\n Type TypeName\n}\n\n// Example is just an example.\ntype Example struct {\n // Description describes the example.\n Description string\n // Type is result object type.\n Type TypeName\n // Instance is encoded instance data.\n Instance []byte\n}\n\n// Definition is complete version of def.Definition.\ntype Definition struct {\n // Method is definition method.\n Method definition.Method\n // HTTPMethod is http method.\n HTTPMethod string\n // HTTPCode is http success code.\n HTTPCode int\n // Summary is a brief of this definition.\n Summary string\n // Description describes the API handler.\n Description string\n // Consumes indicates how many content types the handler can consume.\n // It will override parent descriptor's consumes.\n Consumes []string\n // Produces indicates how many content types the handler can produce.\n // It will override parent descriptor's produces.\n Produces []string\n // ErrorProduces is used to generate data for error. If this field is empty,\n // it means that this field equals to Produces.\n // In some cases, succeessful data and error data should be generated in\n // different ways.\n ErrorProduces []string\n // Function is a function handler. It must be func type.\n Function TypeName\n // Parameters describes function parameters.\n Parameters []Parameter\n // Results describes function retrun values.\n Results []Result\n // Examples contains many examples for the API handler.\n Examples []Example\n}\n\n\n用于表示代码注释的 Comments在源码解析的时候,通常需要通过注释实现一些特殊功能,因此要对注释进行分析。目前注释特殊格式是 +nirvana:api=option:\"value\"。\nconst (\n // CommentsOptionDescriptors is the option name of descriptors.\n CommentsOptionDescriptors = \"descriptors\"\n // CommentsOptionModifiers is the option name of modifiers.\n CommentsOptionModifiers = \"modifiers\"\n // CommentsOptionAlias is the option name of alias.\n CommentsOptionAlias = \"alias\"\n // CommentsOptionOrigin is the option name of original name.\n CommentsOptionOrigin = \"origin\"\n)\n\n// Comments is parsed from go comments.\ntype Comments struct {\n lines []string\n options map[string][]string\n}\n\nvar optionsRegexp = regexp.MustCompile(`^[ \\t]*\\+nirvana:api[ \\t]*=(.*)$`)\nvar options = []string{CommentsOptionDescriptors, CommentsOptionModifiers, CommentsOptionAlias}\n\n// ParseComments parses comments and extracts nirvana options.\nfunc ParseComments(comments string) *Comments\n\n\n用于分析源码的 AnalyzerAnalyzer 可以读取源码,获取结构对象和注释信息。\n// Analyzer analyzes go packages.\ntype Analyzer struct {\n ...\n}\n\n// NewAnalyzer creates a code ananlyzer.\nfunc NewAnalyzer(root string) *Analyzer\n\n// Import imports a package and all packages it depends on.\nfunc (a *Analyzer) Import(path string) (*types.Package, error)\n\n// PackageComments returns comments above package keyword.\n// Import package before calling this method.\nfunc (a *Analyzer) PackageComments(path string) []*ast.CommentGroup\n\n// Packages returns packages under specified directory (including itself).\n// Import package before calling this method.\nfunc (a *Analyzer) Packages(parent string, vendor bool) []string\n\n// FindPackages returns packages which contain target.\n// Import package before calling this method.\nfunc (a *Analyzer) FindPackages(target string) []string\n\n// Comments returns immediate comments above pos.\n// Import package before calling this method.\nfunc (a *Analyzer) Comments(pos token.Pos) *ast.CommentGroup\n\n// ObjectOf returns declaration object of target.\nfunc (a *Analyzer) ObjectOf(pkg, name string) (types.Object, error)\n\n\n集合上述所有功能的 ContainerContainer 读取源码并进行分析,产出 API 相关的所有定义和类型信息。API 定义和类型信息可以用来生成 API 文档和客户端。\n// Definitions describes all APIs and its related object types.\ntype Definitions struct {\n // Definitions holds mappings between path and API descriptions.\n Definitions map[string][]Definition\n // Types contains all types used by definitions.\n Types map[TypeName]*Type\n}\n\n// Container contains informations to generate APIs.\ntype Container struct {\n ...\n}\n\n// NewContainer creates API container.\nfunc NewContainer(root string) *Container\n\n// AddModifier add definition modifiers to container.\nfunc (ac *Container) AddModifier(modifiers ...service.DefinitionModifier)\n\n// AddDescriptor add descriptors to container.\nfunc (ac *Container) AddDescriptor(descriptors ...definition.Descriptor)\n\n// Generate generates API definitions.\nfunc (ac *Container) Generate() (*Definitions, error)\n\n\n\nbuilder 包相对 api 包来说就简单很多了,这个包里包含一个 API Builder:\n// APIBuilder builds api definitions by specified package.\ntype APIBuilder struct {\n ...\n}\n\n// NewAPIBuilder creates an api builder.\nfunc NewAPIBuilder(root string, paths ...string) *APIBuilder\n\n// Build build api definitions.\nfunc (b *APIBuilder) Build() (*api.Definitions, error)\n\nAPI Builder 首先会利用 Analyzer 去读取指定路径的源码,然后从中找到标记了 modifiers 和 descriptors 选项的注释。两个选项的值对应两个函数,分别返回 Modifier 和 Descriptor。然后动态生成一个 main.go 文件 import 这两个函数对应包,然后调用这两个函数,取得返回值。得到返回值之后则利用 api 包的 Container 来生成 API 定义和类型信息。API Builder 执行 main.go 后通过 stdout 取得返回值,反序列化成 Definitions 结构,然后再返回给 API Builder 的调用者。这样就完成了对一个项目的 API 信息的提取。\ngolang 包和 swagger 包实际上都是利用了 API Builder 的返回结果,构建出相应的客户端和文档。golang 包会为每一个 API 生成一个客户端函数,这个函数的结构和服务读基本一致。函数体的实现则是直接使用了 rest 包 Client 接口。swagger 包则是利用了 github.com/go-openapi/spec 将 API 定义和类型转换成了 openapi 的定义。\n"},"topics/command.html":{"url":"topics/command.html","title":"cmd/nirvana","keywords":"","body":"nirvana 命令\nNirvana 命令对应的包在 cmd/nirvana 中,目前包括三个命令:\n\ninit,用于初始化标准项目目录结构和必要文件\napi,用于生成 API 文档(需要确保使用的是标准的项目结构,否则可能无法正常工作)\nclient,用于生成 API 对应的客户端(需要确保使用的是标准的项目结构,否则可能无法正常工作)。\n\n每个命令都是一个目录,互相之间不干扰。每个目录都有一个 init.go 的文件用于把当前的命令加入到 Nirvana 根命令中,比如:\npackage project\n\nimport \"github.com/spf13/cobra\"\n\n// Register registers all commands.\nfunc Register(root *cobra.Command) {\n root.AddCommand(newInitCommand())\n}\n\n然后在 main.go 中 import 这个包并进行命令注册:\nimport (\n \"github.com/caicloud/nirvana/cmd/nirvana/api\"\n \"github.com/caicloud/nirvana/cmd/nirvana/client\"\n \"github.com/caicloud/nirvana/cmd/nirvana/project\"\n \"github.com/caicloud/nirvana/log\"\n \"github.com/spf13/cobra\"\n)\n\nvar root = &cobra.Command{\n Use: \"nirvana\",\n Short: \"Nirvana toolchains\",\n}\n\nfunc main() {\n project.Register(root)\n api.Register(root)\n client.Register(root)\n if err := root.Execute(); err != nil {\n log.Fatalln(err)\n }\n}\n\n接下来以 init 命令为例,说明单个命令的基本结构:\nfunc newInitCommand() *cobra.Command {\n options := &initOptions{}\n cmd := &cobra.Command{\n Use: \"init /path/to/project\",\n Short: \"Create a basic project structure\",\n Long: options.Manuals(),\n Run: func(cmd *cobra.Command, args []string) {\n if err := options.Validate(cmd, args); err != nil {\n log.Fatalln(err)\n }\n if err := options.Run(cmd, args); err != nil {\n log.Fatalln(err)\n }\n },\n }\n options.Install(cmd.PersistentFlags())\n return cmd\n}\n\ntype initOptions struct {\n Boilerplate string\n Version string\n Registries []string\n ImagePrefix string\n ImageSuffix string\n BuildImage string\n RuntimeImage string\n}\n\nfunc (o *initOptions) Install(flags *pflag.FlagSet) {\n flags.StringVar(&o.Boilerplate, \"boilerplate\", \"\", \"Path to boilerplate\")\n flags.StringVar(&o.Version, \"version\", \"v0.1.0\", \"First version of the project\")\n flags.StringSliceVar(&o.Registries, \"registries\", []string{}, \"Docker image registries\")\n flags.StringVar(&o.ImagePrefix, \"image-prefix\", \"\", \"Docker image prefix\")\n flags.StringVar(&o.ImageSuffix, \"image-suffix\", \"\", \"Docker image suffix\")\n flags.StringVar(&o.BuildImage, \"build-image\", \"golang:latest\", \"Golang image for building the project\")\n flags.StringVar(&o.RuntimeImage, \"runtime-image\", \"debian:jessie\", \"Docker base image for running the project\")\n}\n\nfunc (o *initOptions) Validate(cmd *cobra.Command, args []string) error\n\nfunc (o *initOptions) Run(cmd *cobra.Command, args []string) error\n\n基本结构如下:\n\n一个创建命令的私有函数 newInitCommand\n一个表示当前命令的所有参数的 initOptions\nOptions 实现的 Install 方法用于安装 flag 到命令中\nOptions 实现的 Validate 方法用于验证参数是否正确\nOptions 实现的 Run 方法真正执行命令对应的逻辑\n\n\n\n如果需要新增命令扩展 Nirvana 的功能,需要按照上述结构进行开发。\n"}}} \ No newline at end of file diff --git a/docs/zh-hans/topics/command.html b/docs/zh-hans/topics/command.html index 261cf5ed..be7a1aea 100644 --- a/docs/zh-hans/topics/command.html +++ b/docs/zh-hans/topics/command.html @@ -862,7 +862,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"cmd/nirvana","level":"1.5.14","depth":2,"previous":{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/command.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"cmd/nirvana","level":"1.5.14","depth":2,"previous":{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/command.md","mtime":"2019-08-06T09:48:58.239Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/config.html b/docs/zh-hans/topics/config.html index 55da18a2..9dca33d7 100644 --- a/docs/zh-hans/topics/config.html +++ b/docs/zh-hans/topics/config.html @@ -925,7 +925,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"config","level":"1.5.11","depth":2,"next":{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},"previous":{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/config.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"config","level":"1.5.11","depth":2,"next":{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},"previous":{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/config.md","mtime":"2019-08-06T09:48:58.239Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/converter.html b/docs/zh-hans/topics/converter.html index f4b1ae08..4938c81a 100644 --- a/docs/zh-hans/topics/converter.html +++ b/docs/zh-hans/topics/converter.html @@ -796,7 +796,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"operators/converter","level":"1.5.6","depth":2,"next":{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},"previous":{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/converter.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"operators/converter","level":"1.5.6","depth":2,"next":{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},"previous":{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/converter.md","mtime":"2019-08-06T09:48:58.240Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/definition.html b/docs/zh-hans/topics/definition.html index d89b01c2..d980ceb8 100644 --- a/docs/zh-hans/topics/definition.html +++ b/docs/zh-hans/topics/definition.html @@ -1040,7 +1040,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"definition","level":"1.5.4","depth":2,"next":{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},"previous":{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/definition.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"definition","level":"1.5.4","depth":2,"next":{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},"previous":{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/definition.md","mtime":"2019-08-06T09:48:58.240Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/errors.html b/docs/zh-hans/topics/errors.html index a2430b79..36d9e6ed 100644 --- a/docs/zh-hans/topics/errors.html +++ b/docs/zh-hans/topics/errors.html @@ -856,7 +856,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"errors","level":"1.5.3","depth":2,"next":{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},"previous":{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/errors.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"errors","level":"1.5.3","depth":2,"next":{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},"previous":{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/errors.md","mtime":"2019-08-06T09:48:58.240Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/log.html b/docs/zh-hans/topics/log.html index b1af24a9..ad0d001b 100644 --- a/docs/zh-hans/topics/log.html +++ b/docs/zh-hans/topics/log.html @@ -869,7 +869,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"log","level":"1.5.2","depth":2,"next":{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},"previous":{"title":"准备工作","level":"1.5.1","depth":2,"path":"topics/start.md","ref":"topics/start.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/log.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"log","level":"1.5.2","depth":2,"next":{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},"previous":{"title":"准备工作","level":"1.5.1","depth":2,"path":"topics/start.md","ref":"topics/start.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/log.md","mtime":"2019-08-06T09:48:58.241Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/method.html b/docs/zh-hans/topics/method.html index faf4fbec..ef54a8f5 100644 --- a/docs/zh-hans/topics/method.html +++ b/docs/zh-hans/topics/method.html @@ -815,7 +815,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"definition/method","level":"1.5.5","depth":2,"next":{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},"previous":{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/method.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"definition/method","level":"1.5.5","depth":2,"next":{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},"previous":{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/method.md","mtime":"2019-08-06T09:48:58.243Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/nirvana.html b/docs/zh-hans/topics/nirvana.html index d6cd2cc3..035e9a8a 100644 --- a/docs/zh-hans/topics/nirvana.html +++ b/docs/zh-hans/topics/nirvana.html @@ -841,7 +841,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"nirvana","level":"1.5.10","depth":2,"next":{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},"previous":{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/nirvana.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"nirvana","level":"1.5.10","depth":2,"next":{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},"previous":{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/nirvana.md","mtime":"2019-08-06T09:48:58.244Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/rest.html b/docs/zh-hans/topics/rest.html index db461a59..e825c23b 100644 --- a/docs/zh-hans/topics/rest.html +++ b/docs/zh-hans/topics/rest.html @@ -839,7 +839,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"rest","level":"1.5.12","depth":2,"next":{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},"previous":{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/rest.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"rest","level":"1.5.12","depth":2,"next":{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},"previous":{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/rest.md","mtime":"2019-08-06T09:48:58.244Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/router.html b/docs/zh-hans/topics/router.html index c3dfed83..c3d76bc0 100644 --- a/docs/zh-hans/topics/router.html +++ b/docs/zh-hans/topics/router.html @@ -872,7 +872,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"service/router","level":"1.5.8","depth":2,"next":{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},"previous":{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/router.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"service/router","level":"1.5.8","depth":2,"next":{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},"previous":{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/router.md","mtime":"2019-08-06T09:48:58.244Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/service.html b/docs/zh-hans/topics/service.html index 3a3f3b10..002f4823 100644 --- a/docs/zh-hans/topics/service.html +++ b/docs/zh-hans/topics/service.html @@ -972,7 +972,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"service","level":"1.5.9","depth":2,"next":{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},"previous":{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/service.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"service","level":"1.5.9","depth":2,"next":{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},"previous":{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/service.md","mtime":"2019-08-06T09:48:58.244Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/start.html b/docs/zh-hans/topics/start.html index f17afa20..43e4001f 100644 --- a/docs/zh-hans/topics/start.html +++ b/docs/zh-hans/topics/start.html @@ -803,7 +803,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"准备工作","level":"1.5.1","depth":2,"next":{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},"previous":{"title":"框架开发者指南","level":"1.5","depth":1,"ref":"","articles":[{"title":"准备工作","level":"1.5.1","depth":2,"path":"topics/start.md","ref":"topics/start.md","articles":[]},{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},{"title":"cmd/nirvana","level":"1.5.14","depth":2,"path":"topics/command.md","ref":"topics/command.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/start.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"准备工作","level":"1.5.1","depth":2,"next":{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},"previous":{"title":"框架开发者指南","level":"1.5","depth":1,"ref":"","articles":[{"title":"准备工作","level":"1.5.1","depth":2,"path":"topics/start.md","ref":"topics/start.md","articles":[]},{"title":"log","level":"1.5.2","depth":2,"path":"topics/log.md","ref":"topics/log.md","articles":[]},{"title":"errors","level":"1.5.3","depth":2,"path":"topics/errors.md","ref":"topics/errors.md","articles":[]},{"title":"definition","level":"1.5.4","depth":2,"path":"topics/definition.md","ref":"topics/definition.md","articles":[]},{"title":"definition/method","level":"1.5.5","depth":2,"path":"topics/method.md","ref":"topics/method.md","articles":[]},{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},{"title":"operators/validator","level":"1.5.7","depth":2,"path":"topics/validator.md","ref":"topics/validator.md","articles":[]},{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},{"title":"service","level":"1.5.9","depth":2,"path":"topics/service.md","ref":"topics/service.md","articles":[]},{"title":"nirvana","level":"1.5.10","depth":2,"path":"topics/nirvana.md","ref":"topics/nirvana.md","articles":[]},{"title":"config","level":"1.5.11","depth":2,"path":"topics/config.md","ref":"topics/config.md","articles":[]},{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},{"title":"utils","level":"1.5.13","depth":2,"path":"topics/utils.md","ref":"topics/utils.md","articles":[]},{"title":"cmd/nirvana","level":"1.5.14","depth":2,"path":"topics/command.md","ref":"topics/command.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/start.md","mtime":"2019-08-06T09:48:58.245Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/utils.html b/docs/zh-hans/topics/utils.html index 07479669..04db65ea 100644 --- a/docs/zh-hans/topics/utils.html +++ b/docs/zh-hans/topics/utils.html @@ -1017,7 +1017,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"utils","level":"1.5.13","depth":2,"next":{"title":"cmd/nirvana","level":"1.5.14","depth":2,"path":"topics/command.md","ref":"topics/command.md","articles":[]},"previous":{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/utils.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"utils","level":"1.5.13","depth":2,"next":{"title":"cmd/nirvana","level":"1.5.14","depth":2,"path":"topics/command.md","ref":"topics/command.md","articles":[]},"previous":{"title":"rest","level":"1.5.12","depth":2,"path":"topics/rest.md","ref":"topics/rest.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/utils.md","mtime":"2019-08-06T09:48:58.245Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/docs/zh-hans/topics/validator.html b/docs/zh-hans/topics/validator.html index 7c54d580..6b3608f7 100644 --- a/docs/zh-hans/topics/validator.html +++ b/docs/zh-hans/topics/validator.html @@ -855,7 +855,7 @@

No results matching " var gitbook = gitbook || []; gitbook.push(function() { - gitbook.page.hasChanged({"page":{"title":"operators/validator","level":"1.5.7","depth":2,"next":{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},"previous":{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/validator.md","mtime":"2018-08-10T02:22:37.507Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-09-10T02:40:26.637Z"},"basePath":"..","book":{"language":"zh-hans"}}); + gitbook.page.hasChanged({"page":{"title":"operators/validator","level":"1.5.7","depth":2,"next":{"title":"service/router","level":"1.5.8","depth":2,"path":"topics/router.md","ref":"topics/router.md","articles":[]},"previous":{"title":"operators/converter","level":"1.5.6","depth":2,"path":"topics/converter.md","ref":"topics/converter.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"language":"zh-hans","gitbook":"*"},"file":{"path":"topics/validator.md","mtime":"2019-08-06T09:48:58.245Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-04-27T06:38:35.880Z"},"basePath":"..","book":{"language":"zh-hans"}}); }); diff --git a/manuals/zh-hans/guides/images/docs.png b/manuals/zh-hans/guides/images/docs.png index 55c9ba52..c372ca1f 100644 Binary files a/manuals/zh-hans/guides/images/docs.png and b/manuals/zh-hans/guides/images/docs.png differ